如何彻底改变laravel中的auth表?

我有accounts一个表,我想在其中进行身份验证,并且我已经做到了这一点,

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

auth()->user()->email

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

auth()->account()->email

它返回以下错误:

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

有人知道如何将函数名称从用户更改为自定义吗?我真的被这个问题困扰了。


暮色呼如
浏览 73回答 2
2回答

跃然一笑

方法名称并不重要,user方法并不意味着您的身份验证守卫会获取 a App\User,它会获取由该守卫验证的实体,无论它是什么。如果你真的想这样做(请注意,它只不过是一个别名),你必须继承你的会话保护并添加这个方法public function account(){     return $this->user(); }但这又是一个坏主意,特别是因为你忽略了每个警卫都实现的方法。如果有一天你决定更换使用过的守卫,你的代码也会因为同样的原因而被破坏。

四季花海

嗯,以前从未这样做过,但您可以转到vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php并更改user()为所需的名称。就我个人而言,对于测试,我会复制整个函数,更改为account()但保留,users()以防出现问题。
打开App,查看更多内容
随时随地看视频慕课网APP