Laravel Blade @guest指令适用于多名警卫

时间:2017-09-30 00:19:41

标签: php laravel laravel-blade

我有用户保护(名称为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指令,但感觉太多了,还有更好的方法吗?

1 个答案:

答案 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