Панель навигации с несколькими системами аутентификации в laravel - PullRequest
0 голосов
/ 13 июля 2020

В моем приложении 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}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...