Laravel 在不同的防护装置上使用Auth::check()不起作用
我有不同的警卫Laravel 在不同的防护装置上使用Auth::check()不起作用,laravel,authentication,middleware,guard,Laravel,Authentication,Middleware,Guard,我有不同的警卫 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], 'teacher' => [ 'driver'
'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>
@if(!auth()->guard('web')->check()| | |!auth()->guard('doctor')->check()| | |!auth()->guard('teacher')->check())
请注意,当我只使用:auth()::check()时,它指的是其防护为web的默认用户
如果我只检查一个防护装置,它会工作,但其他防护装置呢?也许我的if语句不正确,但无论如何,我想要一个解决方案来检查给定的用户是否已登录,这样我就可以隐藏按钮并将其重定向到他的个人资料
谢谢@if(!(auth()->guard('web')->check()| auth()->guard('doctor')->check()| auth()->guard('teacher')->check())
@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>