nic*_*ick 6 php laravel laravel-blade
我有用户警卫(名称为web)和管理员警卫(名称为admin)。因此,为了显示/隐藏内容,我使用 Laravel Blade 指令@auth('web'),@auth('admin')但不知何故它@guest不起作用,所以我被迫像这样使用:
@auth('admin')
<li>Dashboard</li>
<li>Log out</li>
@endauth
@auth('web')
<li>Create Post</li>
<li>Log out</li>
@endauth
@guest('admin')
@guest('web')
<li>Contact</li>
<li>About us</li>
@endguest
@endguest
Run Code Online (Sandbox Code Playgroud)
我嵌套了访客指令,但感觉太多了,有更好的方法吗?
刚刚测试过这个 - 使用 Laravel 5.4.36。
<ul class="nav navbar-nav">
@guest
<li>I'm a guest</li>
@endauth
<li>{{ Html::link(url('/consultants'), 'Consultants') }}</li>
<li>{{ Html::link(url('/clients'), 'Clients') }}</li>
<li>{{ Html::link(url('/tasks'), 'Tasks') }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,“我是访客”仅向未经身份验证的用户显示。
我注意到你有@endguest但没有@endauth——这只是一个错字吗?
更新:如果你这样做,它会如你所期望的那样工作吗?
@auth('admin')
<li>Dashboard</li>
<li>Log out</li>
@endauth
@auth('web')
<li>Create Post</li>
<li>Log out</li>
@endauth
@guest
<li>Contact</li>
<li>About us</li>
@endauth
Run Code Online (Sandbox Code Playgroud)