我想在不同的控制器中获得相同的视图文件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