@VaniXac
17 лет

Почему в Сервисах не работают сессии?

public function boot()
    {
        // Задаеться роль гостя, если он не авторизован
        if(!Session::has('id_user')){
            Session::put('role', 'guest');
        }

        // Глобальная переменная о пользователе
        $myInfo = Users::find(Session::get('id_user'));
        view()->share('userInfo', $myInfo);

    }


Если ввести в find самому id пользователя то все нормально работает, а с сессиями отказывается, почему, как исправить?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts
Senior Notepad Reader
Сессия запускается из миддлвари во время запроса/ответа. Начиная, если не путаю, с Laravel 5.2.

Пыщ: https://github.com/laravel/laravel/blob/master/app...

Метод boot стартует раньше, а значит и доступа к сессиям у него нет. И это вполне логично, т.к., например, в CLI сессий быть не может, а значит запускать и использовать их в провайдере не имеет смысла. Имеет смысл зарегистрировать вью-композер, т.к. он резолвится непосредственно во время отображения представления, а значит и сессии вполне могут там уже быть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы