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.0 中的自定义重置密码路由

auth组件

Laravel 5.3 Auth 外观正在更改为默认的经过身份验证的用户

Laravel 5.4 Auth Guardian 驱动程序 [customers] 未定义

Auth 尝试方法在 Laravel/Lumen + JWT + 用户自定义模型中如何工作

Firebase Auth - 自定义声明的用户列表