如何彻底改变 laravel 中的 auth table?
How to completely change the auth table in laravel?
我有 accounts
table 我想成为 Authenticatable 我已经完成了这个,已经做了答案@PintuKumar 在这个 Whosebug-link 中工作正常。
我的问题在这里,下面的行有效
auth()->user()->email
但是我想要的是下面这行,当我尝试的时候,它不起作用
auth()->account()->email
下面是returns错误:
Method Illuminate\Auth\SessionGuard::account does not exist. (View: D:\workspace\laravel\blog\resources\views\home.blade.php)
有人知道如何将函数名称从 user 更改为 custom 吗?我真的被这个困住了。
好吧,以前从未这样做过,但是您可以转到 vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php
并将 user()
更改为所需的名称。就个人而言,对于测试,我会复制整个函数,更改为 account()
但保留 users()
以防出现问题。
方法名称无关紧要,user
方法并不意味着您的身份验证守卫获取一个App\User
,它获取由该守卫验证的实体,无论它是什么。
如果你真的想这样做(注意它只不过是一个别名),你必须继承你的会话守卫并添加这个方法
public function account()
{
return $this->user();
}
但这又是一个坏主意,特别是因为您忽略了每个守卫都实现的方法。如果有一天你决定更换使用过的守卫,你的代码也会因为同样的原因而崩溃。
我有 accounts
table 我想成为 Authenticatable 我已经完成了这个,已经做了答案@PintuKumar 在这个 Whosebug-link 中工作正常。
我的问题在这里,下面的行有效
auth()->user()->email
但是我想要的是下面这行,当我尝试的时候,它不起作用
auth()->account()->email
下面是returns错误:
Method Illuminate\Auth\SessionGuard::account does not exist. (View: D:\workspace\laravel\blog\resources\views\home.blade.php)
有人知道如何将函数名称从 user 更改为 custom 吗?我真的被这个困住了。
好吧,以前从未这样做过,但是您可以转到 vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php
并将 user()
更改为所需的名称。就个人而言,对于测试,我会复制整个函数,更改为 account()
但保留 users()
以防出现问题。
方法名称无关紧要,user
方法并不意味着您的身份验证守卫获取一个App\User
,它获取由该守卫验证的实体,无论它是什么。
如果你真的想这样做(注意它只不过是一个别名),你必须继承你的会话守卫并添加这个方法
public function account()
{
return $this->user();
}
但这又是一个坏主意,特别是因为您忽略了每个守卫都实现的方法。如果有一天你决定更换使用过的守卫,你的代码也会因为同样的原因而崩溃。