如何完全更改laravel中的auth表?

时间:2020-07-03 09:13:52

标签: php laravel laravel-6 laravel-authentication

我有一个accounts表,我想在其中进行可认证,而我这样做了,已经在此{{3中完成了 @PintuKumar }},并且工作正常。

我的问题在这里,下面的行在起作用

auth()->user()->email

但是我想要的是下面的行,当我尝试时,它行不通

auth()->account()->email

它在下面返回一个错误:

方法Illuminate \ Auth \ SessionGuard :: account不存在。 (视图:D:\ workspace \ laravel \ blog \ resources \ views \ home.blade.php)

任何人都知道如何将功能名称从用户更改为 custom 吗?我真的很坚持。

2 个答案:

答案 0 :(得分:2)

方法名称无关紧要,user方法并不意味着您的身份验证保护程序会获取App\User,它会获取由该安全程序验证的实体,无论它是什么。

如果您确实要执行此操作(请注意,它不过是别名),则必须继承会话防护并添加此方法

public function account()
{
    return $this->user();
}

但这又是一个坏主意,特别是因为您忽略了由每个后卫实现的方法。如果有一天您决定更改已使用的防护,则您的代码也会由于相同的原因而中断。

答案 1 :(得分:-2)

好吧,以前从未这样做过,但是您可以转到vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php并将user()更改为所需的名称。就个人而言,对于测试,我将复制整个函数,更改为account(),但保留users()以防出现问题。

相关问题