Директива session
Директива session используется для получения значения из сессии в Blade-шаблонах. Она принимает ключ и возвращает соответствующее значение, если оно существует. Если значение не найдено, директива возвращает null. Вторым параметром можно передать значение по умолчанию, которое будет возвращено, если ключ отсутствует.
Синтаксис
{{-- Вывод значения по ключу --}}
{{ session('key') }}
{{-- Вывод значения со значением по умолчанию --}}
{{ session('key', 'default value') }}
Пример
Давайте выведем сообщение об успешном действии, которое было сохранено в сессии:
<div>
@if (session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
</div>
Результат выполнения кода при наличии сообщения в сессии:
<div>
<div class="alert alert-success">
"Profile updated successfully"
</div>
</div>
Пример
Давайте отобразим ошибку валидации из сессии:
<form method="POST" action="/login">
@csrf
<input type="email" name="email" placeholder="Email">
<input type="password" name="password" placeholder="Password">
<button type="submit">Login</button>
@if (session('error'))
<div class="alert alert-danger">
{{ session('error') }}
</div>
@endif
</form>
Результат выполнения кода при наличии ошибки в сессии:
<form method="POST" action="/login">
<input type="hidden" name="_token" value="...">
<input type="email" name="email" placeholder="Email">
<input type="password" name="password" placeholder="Password">
<button type="submit">Login</button>
<div class="alert alert-danger">
"Invalid credentials"
</div>
</form>
Пример
Давайте используем значение по умолчанию, если ключ в сессии отсутствует:
<div>
<h1>Dashboard</h1>
<p>Welcome back, {{ session('username', 'Guest') }}</p>
</div>
Результат выполнения кода при отсутствии ключа 'username' в сессии:
<div>
<h1>Dashboard</h1>
<p>Welcome back, Guest</p>
</div>
Пример
Давайте проверим наличие нескольких сообщений в сессии и выведем их:
<div>
@if (session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if (session('warning'))
<div class="alert alert-warning">{{ session('warning') }}</div>
@endif
@if (session('info'))
<div class="alert alert-info">{{ session('info') }}</div>
@endif
</div>
Результат выполнения кода при наличии сообщений в сессии:
<div>
<div class="alert alert-success">"Changes saved"</div>
<div class="alert alert-info">"New updates available"</div>
</div>