我有accounts一个表,我想在其中进行身份验证,并且我已经做到了这一点,我的问题在这里,下面的行正在工作auth()->user()->email但我想要的是下面的行,当我尝试它时,它不起作用auth()->account()->email它返回以下错误:方法 Illuminate\Auth\SessionGuard::account 不存在。(查看:D:\workspace\laravel\blog\resources\views\home.blade.php)有人知道如何将函数名称从用户更改为自定义吗?我真的被这个问题困扰了。
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
方法名称并不重要,user
方法并不意味着您的身份验证守卫会获取 a App\User
,它会获取由该守卫验证的实体,无论它是什么。
如果你真的想这样做(请注意,它只不过是一个别名),你必须继承你的会话保护并添加这个方法
public function account(){ return $this->user(); }
但这又是一个坏主意,特别是因为你忽略了每个警卫都实现的方法。如果有一天你决定更换使用过的守卫,你的代码也会因为同样的原因而被破坏。
四季花海
TA贡献1811条经验 获得超5个赞
嗯,以前从未这样做过,但您可以转到vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php
并更改user()
为所需的名称。就我个人而言,对于测试,我会复制整个函数,更改为account()
但保留,users()
以防出现问题。
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消