Auth :: checker возвращает false, даже если пользователь вошел в систему - PullRequest
0 голосов
/ 03 июля 2019

Сначала я вошел в систему и выдает ошибку "Undefined $ scholar", на мой взгляд.

if (Auth::check()) {
        $scholar = Scholar::where('user_id','=','Auth::User()->id')->count();
        view()->share('scholar', $scholar);
}

секунду, я попытался dd(Auth::check());, и он вернул false, когда я вошел в систему.
Почему Auth::check() возвращает false, даже если пользователь вошел в систему?

if (Auth::check()) {
    dd(Auth::check());
    $scholar = Scholar::where('user_id','=','Auth::User()->id')->count();
    view()->share('scholar', $scholar);
}

1 Ответ

0 голосов
/ 03 июля 2019

Три ошибки:

  1. Предложение where помещает идентификатор пользователя auth в кавычку, поэтому он оценивает его как строку, поэтому запрос не находит ни одной строки

  2. Вы точно не выбираете строку Scholar, вместо этого вы запрашиваете счет?

  3. Вы получаете доступ к аутентифицированному пользователю неправильно

Попробуйте это:

if (Auth::check()) {
    $scholar = Scholar::where('user_id', '=', Auth::user()->id)->first();
    view()->share('scholar', $scholar);
}

P.S. Вместо Auth::user()->id вы также можете использовать Auth::id() - подробнее здесь: https://laravel.com/docs/5.4/authentication

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...