#php #laravel #session
#php #laravel #сессия
Вопрос:
Я пытаюсь создать пользовательскую страницу ошибок в Laravel 5.3. Я хотел получить некоторую переменную, хранящуюся в Session
подобном Session::get("username")
, однако я получаю пустую переменную.
Как я могу получить любую Session
переменную на пользовательской странице ошибок в Laravel или это невозможно?
Комментарии:
1. Session::get(«имя пользователя») используется для доступа к переменной сеанса. Но для перекрестной проверки выведите все значения сеанса и проверьте, доступен ли индекс или нет
2. Раньше я
dd(Session::all())
сбрасывал всеSession
переменные на странице ошибок, но она пуста. Я могу получить доступ к переменной просто отлично на страницах без ошибок. Все моиSession
переменные устанавливаются при входе в систему.3. На какой странице ошибок вы пробовали свой
dd(Session::all())
?4. @BastienPhilippe Это пользовательская страница с ошибкой 404, я хотел напечатать имя пользователя в одном из разделов страницы
Ответ №1:
Поскольку Laravel не нашел маршрут, вы не прошли через промежуточное IlluminateSessionMiddlewareStartSession
программное обеспечение (которое по умолчанию находится в web
группе промежуточного программного обеспечения), поэтому ваш сеанс не запущен.
Чтобы инициализировать сеанс, перейдите IlluminateSessionMiddlewareStartSession::class,
из web
$middleware
в Kernel.php
:
protected $middleware = [
IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode::class,
IlluminateSessionMiddlewareStartSession::class,
],
Промежуточные $midleware
программы всегда запускаются, поэтому ваш сеанс будет инициализирован, даже если маршрут не найден.
Комментарии:
1. Это сработало! Есть ли какой-либо недостаток, если
session
включен для каждого отдельного маршрута в Laravel?