即使用户已登录,Auth :: checker也会返回false

时间:2019-07-03 13:57:25

标签: php laravel laravel-5.4

首先,我登录并在我的视图中显示错误“ 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 :(得分:0)

三个错误:

  1. 您的where子句将auth用户ID放在引号中,因此它将其作为字符串进行评估,因此查询找不到任何行

  2. 您不是要完全获取“学者”行,而是要查询计数吗?

  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