如何检查我们目前在laravel

时间:2018-01-17 12:27:39

标签: php laravel guard

我这里有一个项目的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'&amp;&amp;分别为2名警卫中的每一名'/admin/profile''/admin/logout'

现在我知道我可以检查每个警卫Auth::guard('name')->check(); 但是,当两个守卫同时登录时,会以这种方式产生一些问题。即<。p。

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

由于两者都是活动的,因此$ profile在每种情况下都具有后一个值。 那么,有没有办法可以解决这个问题? 像

这样的东西
if(Auth::guard()=='admin'){
////////////////
}

当然不起作用。

1 个答案:

答案 0 :(得分:-1)

我想你必须为每个守卫所照顾的每个接口都有单独的标题。显然if(Auth::guard()=='admin'){ //////////////// }没有提及警卫名称

是无效的