如何检查我们目前在 laravel 中的哪个守卫
How to check which guard we are currently within in laravel
我的 header.blade.php 项目文件的一部分在这里。
@guest
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
@if(condition here)
$profile='/myprofile';
$logout='/logout';
@else
$profile='/admin/myprofile';
$logout='/admin/logout';
@endif
<ul class="dropdown-menu">
<li><a href="{{$profile}}">My Profile</a></li>
<li> <a href="{{$logout}}">Log Out</a>
</li>
</ul>
@endif
</li>
@endguest
我有 2 个守卫,即 web 和 admin。我希望 $profile
和 $logout
分别为 '/profile'
和 '/logout'
&& '/admin/profile'
和 '/admin/logout'
分别用于 2 个守卫。
现在我知道我可以检查每个守卫 Auth::guard('name')->check();
但是,当两个守卫同时登录时,就会产生这样的问题 way.i.e.
if(Auth::guard('web')->check())
{$profile="/myprofile";}
if(Auth::guard('admin')->check())
{$profile="/admin/myprofile";}
由于两者都将处于活动状态,因此 $profile 在每种情况下都将具有后者的值。
那么,有没有办法可以解决这个问题呢?
像
if(Auth::guard()=='admin'){
////////////////
}
这当然行不通。
我猜你必须为每个警卫负责的每个接口设置单独的 headers。显然if(Auth::guard()=='admin'){
////////////////
}
不提守卫名字是无效的
我的 header.blade.php 项目文件的一部分在这里。
@guest
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
@if(condition here)
$profile='/myprofile';
$logout='/logout';
@else
$profile='/admin/myprofile';
$logout='/admin/logout';
@endif
<ul class="dropdown-menu">
<li><a href="{{$profile}}">My Profile</a></li>
<li> <a href="{{$logout}}">Log Out</a>
</li>
</ul>
@endif
</li>
@endguest
我有 2 个守卫,即 web 和 admin。我希望 $profile
和 $logout
分别为 '/profile'
和 '/logout'
&& '/admin/profile'
和 '/admin/logout'
分别用于 2 个守卫。
现在我知道我可以检查每个守卫 Auth::guard('name')->check();
但是,当两个守卫同时登录时,就会产生这样的问题 way.i.e.
if(Auth::guard('web')->check())
{$profile="/myprofile";}
if(Auth::guard('admin')->check())
{$profile="/admin/myprofile";}
由于两者都将处于活动状态,因此 $profile 在每种情况下都将具有后者的值。 那么,有没有办法可以解决这个问题呢? 像
if(Auth::guard()=='admin'){
////////////////
}
这当然行不通。
我猜你必须为每个警卫负责的每个接口设置单独的 headers。显然if(Auth::guard()=='admin'){
////////////////
}
不提守卫名字是无效的