0
我有一个策略,用于检查经过身份验证的用户是否可以删除顾问。Laravel策略返回未经授权
不幸的是,答复总是未经授权,我不确定为什么!
政策功能(ClinicConsultantPolicy):
public function delete(User $user, Consultant $consultant)
{
$consultant_clinic_id = $consultant->clinic_id;
return $user->clinic->id === $consultant_clinic_id;
}
控制器调用上面的函数(ClinicConsultantController):
public function destroy($id)
{
$consultant = Consultant::find($id);
$this->authorize('delete', $consultant);
Consultant::find($id)->delete();
return redirect('clinic/consultants');
}
如果我输出的两个变量的政策尝试匹配(用户诊所ID和顾问诊所ID)都等于2.
但是,很显然,其中的一个在达到政策时或者不是2,或者可能是未定义的,但我不确定为什么?非常感谢您的帮助。
您是否注册了保单?尝试在删除策略中添加dd($ user-> clinic-> id,$ consultant-> clinic_id)'以验证它是否被调用并检查值。 – Sandeesh
你说得很对,我忘了注册政策!这样的疏忽!非常感谢@Sandeesh。 – Ben