讨论数量:
$this->middleware('guest', [
'only' => ['create']
]);
上面语句的意思是:只有 create 这个方法要求用户为未登录,其它方法(如 show)不要求;
你理解成:用户未登录时只能访问 create 这个方法。
二者有微妙区别
@大风 我果然是理解错了,撸第二遍时自己掉进了这个理解的怪圈。
$this->middleware('auth', [
'except' => ['create', 'store', 'show']
]);
$this->middleware('guest', [
'only' => ['create']
]);
刚开始理解时,这个 show 方法在两个限制中就有冲突跟楼主想法一样了,翻源码也没看出啥。常规理解着重点是登陆或未登陆时限定行为(由外向里的方式去解读),而这个地方首先着重的是行为,在行为上限制是否登陆可操作(由里向外去解读)。only
这里理解应该是「仅可」而不是 「仅仅只」。
推荐文章: