Laravel 5.8@if(Auth::user()&;Auth::user()->;role_id==2)返回错误

Laravel 5.8@if(Auth::user()&;Auth::user()->;role_id==2)返回错误,laravel,authentication,laravel-blade,Laravel,Authentication,Laravel Blade,我的导航栏有问题: @if(Auth::user()->role_id && Auth::user()->role_id == 2) <a class="dropdown-item" href="/">Manage My Ad Images</a> <a class="dropdown-item" href="/">My Ads</a> <a class="dropdown-item" hr

我的导航栏有问题:

@if(Auth::user()->role_id && Auth::user()->role_id == 2)
    <a class="dropdown-item" href="/">Manage My Ad Images</a>
    <a class="dropdown-item" href="/">My Ads</a>
    <a class="dropdown-item" href="/">Post an Ad</a>
    <a class="dropdown-item" href="/">Reload My Account</a>
@endif
@if(Auth::user()->role\u id&&Auth::user()->role\u id==2)
@恩迪夫
我得到了一个“尝试获取非对象的属性‘role_id’”错误

我也尝试过Auth::check(),但没有什么不同

@if(Auth::check() && Auth::user()->role_id && Auth::user()->role_id == 2)
    <a class="dropdown-item" href="/">Manage My Ad Images</a>
    <a class="dropdown-item" href="/">My Ads</a>
    <a class="dropdown-item" href="/">Post an Ad</a>
    <a class="dropdown-item" href="/">Reload My Account</a>
@endif
@if(Auth::check()&&Auth::user()->role\u id&&Auth::user()->role\u id==2)
@恩迪夫

首先用
@if(Auth::check())
检查是否有经过身份验证的用户,然后嵌套其他条件:

@if(Auth::check())
    @if(Auth::user()->role_id && Auth::user()->role_id == 2)
        <a class="dropdown-item" href="/">Manage My Ad Images</a>
        <a class="dropdown-item" href="/">My Ads</a>
        <a class="dropdown-item" href="/">Post an Ad</a>
        <a class="dropdown-item" href="/">Reload My Account</a>
    @endif
@endif
@if(Auth::check())
@if(Auth::user()->role\u id&&Auth::user()->role\u id==2)
@恩迪夫
@恩迪夫

您能否说明您是如何尝试使用
Auth::check()
的,因为用户显然未经身份验证,因此出现异常的原因。在
null
上调用一个属性。请参见上面的编辑@nakov:)在前面尝试执行
@if(Auth::check())
,然后嵌套其他条件
@if(Auth::user()->role\u id&&Auth::user()->role\u id==2)
@porloscerrosψ我刚刚尝试了一下-得到了相同的错误。我以前从未见过这个问题,我的大多数项目都是在Laravel上构建的。@porloscerosψ您的嵌套解决方案有效。我知道发生了一些奇怪的事情。它似乎并没有停止对声明前半部分的评估。你能给我一个答案,这样我就可以得到你应得的荣誉吗?