Как проверить, какой охранник в настоящее время в 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 охранника, а именно веб и админ. Я хочу $profile а также $logout быть '/profile' а также '/logout' && '/admin/profile' а также '/admin/logout' соответственно для каждого из 2 охранников.

Теперь я знаю, что могу проверить каждого охранника как Auth::guard('name')->check();
Но когда оба охранника входят в систему в одно и то же время, это создает своего рода проблему таким образом, т.е.

     if(Auth::guard('web')->check())
{$profile="/myprofile";}
if(Auth::guard('admin')->check())
{$profile="/admin/myprofile";}

Так как оба будут активны, $ profile будет иметь последнее значение в каждом случае.
Итак, есть ли способ, которым эта проблема может быть решена?
Что-то вроде

if(Auth::guard()=='admin'){
////////////////
}

что, конечно, не работает.

1

Решение

Я полагаю, у вас должны быть отдельные заголовки для каждого из интерфейсов, о которых заботится каждый из ваших охранников. очевидноif(Auth::guard()=='admin'){
////////////////
}
не действителен без указания имени охранника

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]