Я создаю онлайн-портал заданий в Laravel, в котором я использовал пакет Auth, чтобы иметь два набора пользователей: Пользователь и Работодатель. Я настроил Multi-Auth, где я использовал мини-курс DevMarketer YouTube в качестве справочного материала. Однако в примере, который он показывает в курсе, есть ссылки на панели навигации (раскрывающемся меню «Имя учетной записи»), отображаемой на его странице входа администратора. ( Временная метка того, о чем я говорю, в данный момент вошел в систему пользователь. )
Я возился с Auth::guard()->check()
и Request::is('/')
и как-то подошел с возможным исправлением, которое я искал, но я думаю, что решение, которое я придумал, может быть не тем, которое можно применить в этом.
navbar.blade.php
<nav class="navbar navbar-expand-lg">
<div class="container">
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name', 'Job Portal') }}
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- Left Side Of Navbar -->
{{-- <ul class="navbar-nav mr-auto">
</ul> --}}
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/job-search">Job Search</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact-us">Contact Us</a>
</li>
</ul>
<!-- Right Side Of Navbar -->
<ul class="navbar-nav ml-auto">
<!-- Authentication Links -->
@guest
@if (Request::is('/'))
<li class="nav-item">
<a href="/employer/login" class="nav-link">For Employers</a>
</li>
@endif
<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
// If user is logged in and accessed employer login page
@if ((Auth::guard('web')->check()) && (Request::is('employer/login')))
<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">
<a href="/create-job-post" class="nav-link">Create Job Post</a>
</li>
<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()->username }} <span class="caret"></span>
</a>
@if ((Auth::guard('employer')->check()) && (Request::is('employer/*') || Request::is('employer')))
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('employer.logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('employer.logout') }}" method="POST" style="display: none;">
@csrf
</form>
</div>
@else
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('user.logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('user.logout') }}" method="POST" style="display: none;">
@csrf
</form>
</div>
@endif
</li>
@endif
@endguest
</ul>
</div>
</div>
</nav>
Если кто-то сталкивался с тем, что я ' В настоящее время я испытываю трудности, пожалуйста, порекомендуйте, если мой текущий подход будет достаточно хорошим, или я могу пропустить фрагмент кода, который уменьшил бы мой код в панели навигации. Заранее благодарим и сохраняем.