我有用户保护(名称为web
),我有管理员保护(名称为guard
)。因此,为了显示/隐藏内容,我使用了Laravel刀片指令@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
我嵌入了guest指令,但感觉太多了,还有更好的方法吗?
答案 0 :(得分:0)
刚试过这个 - 使用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>
我是一位来宾&#39;仅按预期显示给未经身份验证的用户。
我注意到你有@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