Laravel 5.3
我有这个中间件( roles )来检查用户是否是管理员(通过检查用户表中名为 isAdmin 的列)。
public function handle($request, Closure $next)
{
$next($request);
dd(Auth::user()); //returns null
if ($request->user()->isAdmin()){
return redirect('admin-home');
}
return redirect('user-home');
}
问题是:Auth::user()
总是返回null,所以我不能测试用户是否是管理员。我使用laravel默认身份验证系统,因此将中间件分配给这样的操作:
LoginController extends Controler{
public function __construct()
{
$this->middleware('roles', ['only' => 'login']);
}
}
因为我已经next($request);
我认为Auth::user()
会返回当前的然后我会根据他的等级将他重定向到正确的视图。我如何修复它以检查用户的级别并重定向他?我知道它有点大,并且可能存在许多更好的方法来实现它,但我真的想在实现其他方法之前实现它。