所以不知怎的,我设法产生一种情况,其中Auth :: check()表示我没有登录,但中间件('auth')仍然允许访问我的类。我做的最后一件事是修改用户数据,但我没有注销,所以我假设Auth :: check()返回错误的值。但为什么会这样呢?我的控制器构造:
public function __construct()
{
if(Auth::check()){
print "yes";
} else {
print "no";
};
$this->middleware('auth');
}
public function index()
{
print " index";
}
打印出“无索引”。所以Auth :: check()返回false,但索引方法仍然是raeched。
答案 0 :(得分:2)
在中间件之前调用构造函数。 Laravel允许您提供控制器中间件,因此您可以从控制器构造函数中推送到中间件堆栈。
控制器构造函数中的任何形式的会话交互都将失败。