为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
暮色呼如 2023-07-08 20:41:26
我有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();
}

但这又是一个坏主意,特别是因为你忽略了每个警卫都实现的方法。如果有一天你决定更换使用过的守卫,你的代码也会因为同样的原因而被破坏。


查看完整回答
反对 回复 2023-07-08
?
四季花海

TA贡献1811条经验 获得超5个赞

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

查看完整回答
反对 回复 2023-07-08
  • 2 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信