【问题标题】:Laravel 5 Auth - custom table with usersLaravel 5 Auth - 用户自定义表
【发布时间】: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])) { // 用户是活跃的,不是被禁止,并且存在。 }

标签: php mysql authentication laravel laravel-5


【解决方案1】:

config/auth.php 中将'table' => 'users' 更改为'table' => 'accounts'

【讨论】:

  • 我可以添加哪些额外数据? :)
  • if (Auth::attempt(['email' => $email, 'password' => $password, 'isbanned' => 0])) { // 用户是活跃的,不是被禁止,并且存在。 }
  • 'table' => 'users' 被我注释掉了。我应该取消注释吗?如果是这样,那会有什么影响?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2020-11-06
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 2018-05-07
相关资源
最近更新 更多