Laravel 5 Auth - 用户自定义表
Posted
技术标签:
【中文标题】Laravel 5 Auth - 用户自定义表【英文标题】:Laravel 5 Auth - custom table with users 【发布时间】:2015-07-07 23:11:42 【问题描述】:我现在正在学习 Laravel 身份验证,但我遇到了一些小问题。我从谷歌阅读了一些关于这种机制的页面,我正在使用
Auth::attempt(['email'=>$request['email'],'password'=>$request['password']]);
Laravel 给我这个错误:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'base.users' doesn't exist (SQL: select * from `users` where `email` = admin@domain.com limit 1)
事实上,我的数据库中没有users
表,我使用的是名称accounts
。如何更改 auth 中的默认表?
另外一个问题是:当我将数据放入 Auth::attempt() 时,数据将更改为 SQL 查询,并且所有数据都将从基础获取?如何添加比基础数据更多的数据?简单来说,我有表ban
,该字段包含禁令结束的天数。我想添加字段 isbanned
来获取 TRUE/FALSE 数据。如果ban
>0 为 TRUE,否则为 FALSE。
【问题讨论】:
if (Auth::attempt(['email' => $email, 'password' => $password, 'isbanned' => 0])) // 用户是活跃的,不是被禁止,并且存在。 【参考方案1】:在config/auth.php
中将'table' => 'users'
更改为'table' => 'accounts'
【讨论】:
我可以添加哪些额外数据? :) if (Auth::attempt(['email' => $email, 'password' => $password, 'isbanned' => 0])) // 用户是活跃的,不是被禁止,并且存在。 'table' => 'users' 被我注释掉了。我应该取消注释吗?如果是这样,那会有什么影响?以上是关于Laravel 5 Auth - 用户自定义表的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.3 Auth 外观正在更改为默认的经过身份验证的用户
Laravel 5.4 Auth Guardian 驱动程序 [customers] 未定义