Политика 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');
}

Если я выведу две переменные, которые пытается сопоставить политика (идентификатор клиники пользователя и идентификатор клиники консультанта), обе будут равны 2.

Тем не менее, очевидно, что один из них либо не равен 2, либо, возможно, не определен, когда он достигает политики, но я не уверен, почему? Большое спасибо за вашу помощь.

0

Решение

Для меня это выглядит как проблема модели отношений при звонке $user->clinic->id, Было бы очень полезно, если бы вы предоставили реализацию отношений. Я могу только предложить писать
$user->clinic()->first()->id если ваши отношения установлены как один ко многим. ура

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]