【发布时间】:2017-01-19 07:34:50
【问题描述】:
我正在使用 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
【问题讨论】:
-
对此感兴趣。在 Guard 功能上有不同的方法。最终调试 Laravel 几个小时,似乎用户并不总是被正确传递。最终只是放弃了守卫并进行了
if (\Auth::user()->isAdmin() { ... }检查。我想知道是什么导致了这种情况发生,因为它甚至发生在框架的全新安装中。
标签: php laravel laravel-5.3