我有一个策略来检查经过身份验证的用户是否可以删除顾问。
不幸的是,响应总是未经授权的,我不确定为什么!
政策功能(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,或者可能是未定义的,但我不确定为什么?非常感谢您的帮助。