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