Laravel 5.8 403 Это действие неавторизовано
У меня есть update
метод вроде этого
public function update(Contact $contact)
{
$this->authorize('ownItems', $contact);
......
}
а также ContactPolicy
:
public function ownItem(User $user,Contact $contact)
{
return true;
}
Он работает правильно, но когда я заменяю Contcact
к ContactRequest
в моем update
метод покажите мне это:
403 Это действие является несанкционированным.
update
метод:
public function update(ContactRequest $contact)
{
$this->authorize('ownItems', $contact);
.......
}
authorize
в ContactRequest:
public function authorize()
{
return true;
}
2 ответа
Решение
ContactRequest
это ларавел Request
экземпляр класса
public function update(ContactRequest $request,Contact $contact)
{
$this->authorize('ownItems', $contact);
.......
}
Вы неправильно написали имя метода в $this->authorize('ownItems', $contact);
, это должно быть ownItem
UPD
ContactRequest
вероятно, экземпляр Illuminate\Http\Request
но authorize
метод ожидания Model
Например, если у вас нет идентификатора модели в вашем запросе. Сначала вам нужно найти модель:$model = Contact::find($contact->input('id'))
а затем проверьте свою политику с $this->authorize('ownItems', $model)