如何完全更改拉拉维尔中的身份验证表?



accounts有一个表格,我想在其中进行身份验证,我对此做了,已经在这个堆栈溢出链接中做了@PintuKumar的答案,它工作正常。

我的问题在这里,下面的行正在工作

auth()->user()->email

但我想要的是下面的一行,当我尝试它时,它不起作用

auth()->account()->email

它返回以下错误:

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

任何人,知道如何将功能名称从用户更改为自定义吗?我真的被这个困住了。

方法名称无关紧要,user方法并不意味着您的身份验证保护获取AppUser,它获取由该保护进行身份验证的实体,无论它是什么。

如果你真的想这样做(请注意,它只不过是一个别名(,你必须继承你的会话保护并添加这个方法

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

但这又是一个坏主意,特别是因为你忽略了每个警卫都实施的方法。如果有一天你决定更换用过的防护装置,你的代码也会因为同样的原因而中断。

好吧,以前从未这样做过,但是您可以转到vendorlaravelframeworksrcIlluminateAuthSessionGuard.php并将user()更改为所需的名称。就个人而言,对于测试,我会复制整个功能,更改为account()但保留users()以防出现问题。

最新更新