【问题标题】:How to make Authentication for another table (not users) in laravel? [duplicate]如何在 laravel 中为另一个表(不是用户)进行身份验证? [复制]
【发布时间】:2018-08-01 11:18:09
【问题描述】:

我正在尝试创建另一个名为 students 的表,我想用它连接登录而不是 users 表,因为“用户”名称会导致我的数据库出现问题。

最初为了注册,我通过创建学生表并在其上存储记录来编写自己的代码,并且它成功运行。

但是对于登录,我更喜欢使用 laravel 登录,但是学生表是否有明确的步骤或类似的东西? 我不想使用“用户”表

【问题讨论】:

  • 如果你使用User模型,你可以在类上设置$table = "students"
  • 更改表名也不起作用:(而且我认为它不是重复的,因为我不想使用“用户”表

标签: laravel


【解决方案1】:

您可以像这样更改auth.phpproviders 数组:

'providers' => [
    'users' => [
        ...
        'model' => App\Student::class,
    ],
    ...
 ]

然后像这样更新你的用户模型:

...
use Illuminate\Foundation\Auth\User as Authenticatable; //remove this line
use Illuminate\Database\Eloquent\Model; //Add this line

class User extends Model {
     ...
}

然后将您的 Students 类更改为以下:

...
use Illuminate\Foundation\Auth\User as Authenticatable; //Add this
...

class Student extends Authenticatable {
    ...
}

【讨论】:

  • 仍然无法正常工作 :( 它在电子邮件“这些凭据与我们的记录不匹配”下显示。
  • 当在数据库中找不到用户时会引发该错误。这并不意味着您询问“如何”的内容不起作用
  • 是的,但电子邮件存在于学生表的数据库中,所以我从这个错误中了解到他没有到达所需的表“学生”,因此我说解决方案不起作用
  • "These credentials do not match our records." 表示您的情况下的student 未与请求的emailpassword 一起找到,而不仅仅是email
  • 非常感谢!你救了我 !我的错误是我的桌子上有“电子邮件”列而不是“电子邮件”和“密码”而不是“密码”,您的解决方案在我修改它们后有效
猜你喜欢
  • 2020-08-01
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 2021-02-08
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多