我是非常新laravel,所以我老实说不知道提供什么信息,但我会尽我所能地问这个问题贯穿始终。Laravel Blade如果语句抛出非对象属性错误Auth检查与警卫
让我们看看我的代码:
@if(Auth::guard('admin')->check() || Auth::guard('web')->check())
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
{{-- Authenticated Dropdown Menu --}}
<ul class="dropdown-menu" role="menu">
{{-- Admin Links --}}
@if (Auth::guard('admin')->check())
<li><a href="{{ route('posts.index') }}">Manage Blog Posts</a></li>
<li role="separator" class="divider"></li>
@endif
{{-- User Links --}}
@if (Auth::guard('web')->check() || Auth::guard('admin')->check())
<li><a href="#">User Test Link</a></li>
<li role="separator" class="divider"></li>
@endif
{{-- Logout and Form --}}
<li>
<a href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Logout
</a>
{!! Form::open(['route' => 'logout', 'id' => 'logout-form', 'style' => 'display: none;']) !!}
{!! Form::close() !!}
</li>
{{-- End Logout Form --}}
</ul>
</li>
@else
<li><a href="{{ route('login') }}">Login</a></li>
<li><a href="{{ route('register') }}">Register</a></li>
@endif
现在,我认为根据Auth::guard('admin')->check()
如果用户认证或者不返回true或false。我还需要运行此if语句针对两名警卫,并检查管理员是否已登录或用户登录。
基本上,正如你可以告诉我从我的代码,我想引导下拉菜单显示如果如果没有登录,则显示登录和注册按钮。
那么如果User
被记录在下拉菜单中不会显示“管理博客文章”链接,因为这就是一个Admin
链接...如果Admin
在登录然而然后显示这两个链接。
正如你可以在下面的代码片段中看到的那样,这是相同的顶部的相同的语句。这一个工作得很好,但父母如果声明不希望似乎工作。
{{-- User Links --}}
@if (Auth::guard('web')->check() || Auth::guard('admin')->check())
<li><a href="#">User Test Link</a></li>
<li role="separator" class="divider"></li>
@endif
这个错误似乎只当我登录的管理员才发生,我尝试访问不是由我auth:admin
中间件保护的任何页面,多数民众赞成。
我得到这个错误,因为我嵌套我的if语句不正确?也许我只是累了,需要第二组眼睛才能看到最小的错误。我已经遵循YouTube上的DevMarketers Multi Auth教程来帮助设置。
(DevMarketer的YouTube多验证教程:https://youtu.be/iKRLrJXNN4M?list=PLwAKR305CRO9S6KVHMJYqZpjPzGPWuQ7Q)
附件是我收到错误消息(S)以及整个_nav.blade.php一个引擎收录的屏幕截图。这个观点是局部的。在开始工作之前,我也刚刚运行了作曲家更新,并注意到laravel框架刚刚从5.4.32变成了5.4.33。不知道这是否会造成戏剧性的变化。
我可以提供我的GitHub库链接,应要求该项目。
尝试增加空的()条件呢!它应该在那之后工作。 –
添加它在哪里,你能提供一个答案,并使用代码示例? –
如果你在控制器和路由中检查你的中间件,它将更容易在你的视图中处理! –