我想在不同的控制器中獲得相同的視圖文件nav.blade.php,但爲管理員和不同的用戶獲取不同的內容,但有一個錯誤。試圖獲得非對象Laravel 5.3的屬性,nav.blade.php
error:View: /var/www/epharma/resources/views/nav.blade.php)
而且問題是這條線
線48:
@if(Auth::user()->type === 'User')
<div> Html for user</div>
我想在不同的控制器中獲得相同的視圖文件nav.blade.php,但爲管理員和不同的用戶獲取不同的內容,但有一個錯誤。試圖獲得非對象Laravel 5.3的屬性,nav.blade.php
error:View: /var/www/epharma/resources/views/nav.blade.php)
而且問題是這條線
線48:
@if(Auth::user()->type === 'User')
<div> Html for user</div>
會發生這種情況,當有用戶登錄沒有。你可以做這樣的事情:
@if (Auth::guest())
<p> Not logged in</p>
@elseif(Auth::user()->type === 'User')
<p> Logged in</p>
@endif
試試這個
if(Auth::user() && Auth::user()->type === 'User')
它不會拋出錯誤,如果第一個條件是假
的用戶沒有通過驗證所以Auth::user()
是Null
。你正試圖得到null->id
。從非對象獲取id屬性(null
)。 您必須首先檢查用戶是否通過Auth::check()
或Auth::user() != null
..等等進行了驗證。然後嘗試獲取用戶屬性。
已幾乎回答了,但你可以做這樣的以及
@if (Auth::guest())
<p> Not logged in</p>
@elseif(Auth::user()->type == 'User')
<p> Logged in</p>
@endif
發佈您的代碼,請! – sandrooco