Директива guest
Директива @guest в Blade позволяет проверить, не авторизован ли пользователь
в текущем сеансе. Это противоположность директиве @auth.
Директива принимает необязательный параметр - имя guard, если используется
нестандартная система аутентификации.
Синтаксис
@guest
<p>Вы не авторизованы</p>
@endguest
@guest('admin')
<p>Вы не авторизованы как администратор</p>
@endguest
Пример
Давайте выведем разное содержимое для гостя и авторизованного пользователя:
@guest
<a href="{{ route('login') }}">Войти</a>
<a href="{{ route('register') }}">Регистрация</a>
@else
<a href="{{ route('dashboard') }}">Личный кабинет</a>
<form action="{{ route('logout') }}" method="POST">
@csrf
<button type="submit">Выйти</button>
</form>
@endguest
Пример
Давайте покажем уведомление для гостя на главной странице:
<h1>Добро пожаловать на сайт</h1>
@guest
<div class="alert alert-info">
<p>Для полного доступа к функциям сайта,
пожалуйста, авторизуйтесь</p>
</div>
@endguest
@auth
<div class="alert alert-success">
<p>Добро пожаловать, {{ auth()->user()->name }}!</p>
</div>
@endauth
Пример
Давайте используем директиву @guest с указанием guard:
@guest('web')
<p>Вы не авторизованы в системе</p>
@endguest
@guest('admin')
<p>Вы не авторизованы как администратор</p>
@else
<p>Добро пожаловать, администратор</p>
@endguest
Пример
Давайте скроем контент для гостей и покажем его только авторизованным:
@guest
<p>Пожалуйста, войдите в систему для просмотра профиля</p>
@else
<div class="profile">
<h2>Профиль пользователя</h2>
<p>Имя: {{ auth()->user()->name }}</p>
<p>Email: {{ auth()->user()->email }}</p>
</div>
@endguest