使用Auth :: check()对不起作用的不同警卫

时间:2018-06-07 12:04:40

标签: laravel authentication middleware guard

我有不同的警卫

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'teacher' => [
        'driver' => 'session',
        'provider' => 'teachers',
    ],

    'doctor' => [
        'driver' => 'session',
        'provider' => 'doctors',
    ],
],

我对所有3个用户(医生,教师和用户)都有相同的布局我想查看视图是否已登录,如果不是我想要显示按钮登录

我试过了:

@if(!auth()->guard('web')->check() || !auth()->guard('doctor')->check() || !auth()->guard('teacher')->check() )
                        <li><a class="nav-link" href="{{ route('getting-started') }}">{{ __('Login') }}</a></li>

当我只使用时要注意:auth():: check()它指的是守卫是web的默认用户

如果我只检查一个后卫是否有效,那么其他人呢?也许我的if语句不正确,但无论如何我想要一个解决方案来检查是否有任何给定用户登录,这样我就可以隐藏按钮并将他重定向到他的个人资料

由于

1 个答案:

答案 0 :(得分:0)

@if(!(auth()->guard('web')->check() || auth()->guard('doctor')->check() || auth()->guard('teacher')->check() ))
   <li><a class="nav-link" href="{{ route('getting-started') }}">{{ __('Login') }}</a></li>