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');
}
もしI出力ポリシーが一致しようとしている二つの変数(ユーザの診療所IDおよびコンサルタントの診療所ID)は、両方とも2に等しい。
しかし、明らかにそのうちの1つはポリシーに達したときに2でないか、おそらく定義されていませんが、なぜわかりませんか?ご協力いただき誠にありがとうございます。
ポリシーを登録しましたか?削除ポリシーに 'dd($ user-> clinic-> id、$ consultant-> clinic_id)'を追加して、呼び出されていることを確認して値を確認してください。 – Sandeesh
あなたは正しかった、私はポリシーを登録することを忘れてしまった!そのような見落とし!多くのありがとう@Sandeesh。 – Ben