laravel中具有多个身份验证系统的Navbar

时间:2020-07-13 19:42:49

标签: laravel

我的Laravel应用中有两个身份验证系统-一个用于用户,一个用于管理员。我正在Laravel 6中使用make:auth的安装随附的导航栏。当用户登录时,导航栏在我的所有路径中都可以正常工作。但是,带有管理员名称的导航栏的右侧显示出行为,我无法解释。

以下是有问题的导航栏部分:

            <ul class="navbar-nav ml-auto">
            <!-- Authentication Links -->
            @guest
                <li class="nav-item">
                    <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                </li>
                @if (Route::has('register'))
                    <li class="nav-item">
                        <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                    </li>
                @endif
            
            @else
                <li class="nav-item dropdown">
                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                        {{ Auth::user()->first_name }} <span class="caret"></span>
                    </a>

                    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                        <a class="dropdown-item" href="{{ route('logout') }}"
                           onclick="event.preventDefault();
                                         document.getElementById('logout-form').submit();">
                            {{ __('Logout') }}
                        </a>

                        <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                            @csrf
                        </form>
                    </div>
                </li>
            @endguest
        </ul>
    </div>

管理员登录后,他们将被路由到/ admin。 AdminController返回admin.blade.php视图。此视图扩展layouts.admin。 layouts.admin文件包含导航栏。管理员登陆到/ admin页面后,其名称将正确显示在导航栏的右侧。但是,当管理员转到任何其他页面时(这些路由的视图都在单独的文件夹中),导航栏将恢复为将管理员视为访客,并且不显示其名称。

我的第一个想法是以某种方式使用View Composer,但这似乎不是问题。我无法理解{{Auth :: user()-> first_name}}如何能够首先获取已登录Admin的名称。我认为这需要使用{{Auth :: guard('admin')-> first_name}}

0 个答案:

没有答案