Ты отправляешь запрос через ссылку методом GET, а нужно - Patch. Ссылку можно попробовать оставить - но я не знаю как. Потому можно использовать метод формы:
Тут метод "PATCH" достигается с помощью соответствующего атрибута формы @method('PATCH'). И не забудь @csrf-токен для защиты формы от атак по CSRF.
И попробуй изменить функцию (для возврата пользователя на страницу, откуда он отправил форму, если тебе это будет нужно):
public function acceptAnnouncement($id){
Announcement::findOrFail($id)->update(['status_id' => 2]);
return redirect()->back();
}
Юле4каЗнаток (376)
1 год назад
Мне конечно максимально не хотелось прибегать к использованию формы, но видимо другого способа нет ... Спасибо большое, позже попробую, если что отпишусь (._. )
Делаю функцию обновления записи в бд.
Выдает ошибку : "The GET method is not supported for this route. Supported methods: PATCH."
Роут:
Route::patch('/moderator/accept/{id}', 'App\Http\Controllers\ModerationController@acceptAnnouncement')->name('accept-announcement');
Ссылка на роут:
<a href="{{route('accept-announcement',$announcement->id)}}">Принять</a>
Функция в контроллере:
public function acceptAnnouncement($id){
Announcement::find($id)->update(['status_id' => 2]);
}
Не понимаю, на что он жалуется, если указан метод patch. Кэш почистила.
Всем неравнодушным спасибо!