Сервис провайдеры в Laravel — как узнать, авторизован ли пользователь?

Решил подключить меню через сервис-провайдер, вот код, который вставляю в метод boot:

if (\Auth::guest()) {
            $links = '1';
        } else {
            $links = '2';
        }
        \Debugbar::info(\Auth::guest());
		view()->composer('menu.menu', function($view) use ($links) {
            $view->with('links', $links);
        });


Проблема в том, что \Auth::guest() выдает true независимо от того, залогинен пользователь или нет. Подскажите, что я упустил?
  • Вопрос задан
  • 3302 просмотра
Решения вопроса 1
Замени на \Auth::user()

Тогда только так:

dd($auth->user()); // null

        view()->composer('partials.nav', function($view) use ($auth){
            dd($auth->user()); // returns User object
            $view->with('currentUser', $auth->user()); // does what you expect
        });
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@petrtr
Auth::user() нужно проверять
Ответ написан
@shane89
guest гость, конечно будет true
обычная проверка
@if(Auth::check())
//действие
@endif
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы