我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()
以防出现问题。