Доступ к переменной сеанса на пользовательских страницах ошибок Laravel

#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?