Laravel Auth :: guard(后卫) - > check()无法按预期工作

时间:2017-01-19 07:34:51

标签: php laravel laravel-5.3

我正在使用Laravel创建一个家庭作业网络应用程序,我正在尝试添加3个不同的人群:管理员,教师和学生。我已经将所有这些创建为模型,并且它们都在数据库中有表。登录脚本工作并记录用户,但是当我使用此代码时出现问题

    if(Auth::guard('student')->check() || Auth::guard('teacher')->check() || Auth::guard('admin')->check()) {
        return Redirect::to('/admin/overview')->send();
    }

登录有效,因为当我输入正确的用户名和密码时,我会被重定向,但当我使用不正确的用户名和密码时,我会被重定向到同一页面。

我的问题是代码行似乎没有做任何事情似乎Auth :: guard('student') - > check()总是返回false。这很奇怪,因为:

    if(Auth::guard('student')->attempt($credentials)) {
        return Redirect::to('/student/overview')->send();
    }

返回true并将我重定向到/ student / overview

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,然后我尝试首先创建Auth的实例,然后使用check()

你需要以这种方式管理,试试这个希望它可以帮助你

$auth = Auth::guard('student');
if ($auth->check()) {
    return Redirect::to('/admin/overview')->send();
}