我有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 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消