В моем приложении Laravel есть две системы аутентификации - одна для пользователей и одна для администраторов. Я использую панель навигации, которая поставляется с установкой make: auth в Laravel 6. Моя панель навигации отлично работает на всех моих маршрутах, когда пользователь вошел в систему. Однако правая часть панели навигации с именем администратора демонстрирует поведение Я не могу объяснить.
Вот раздел рассматриваемой панели навигации:
<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}} может в первую очередь вытащить имя зарегистрированного администратора. Я думал, что для этого потребуется использовать {{Auth :: guard ('admin') -> first_name}}