В моем приложении laravel 5.7 я создаю форму для обновления данных, например:
<section class = "card-body">
<h4 class = "card-title">Edit vote</h4>
<form method = "PUT" action = "{{ url('/admin/votes/update/'.$vote->id) }}" accept-charset = "UTF-8" id = "form_vote_edit" class = "form-horizontal"
enctype = "multipart/form-data">
{!! csrf_field() !!}
<ul class = "nav nav-pills mb-3" id = "pills-tab" role = "tablist">
с маршрутами в routes / web.php:
Route::group(['middleware' => ['auth', 'isVerified', 'CheckUserStatus'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
...
Route::put('/votes/update/{vote_id}', 'Admin\VotesController@update');
но отправляя форму, я получил запрос с ошибкой:
Request URL: http://local-votes.com/admin/votes/update/22?_token=0CEQg05W4jLWtpF3xB6BGSdz1icwysiDOStLVgHv&id=22&name=gg...
Request Method: GET
Status Code: 405 Method Not Allowed
Почему GET запрос, что не так в моей форме?
Спасибо!





HTML-формы поддерживают только GET и POST.
Из документов:
Since HTML forms can't make PUT, PATCH, or DELETE requests, you will need to add a hidden _method field to spoof these HTTP verbs.
Вы можете использовать помощник method_field или блейд-директиву @method, чтобы добавить скрытый ввод.
<form action = "/foo/bar" method = "POST">
@method('PUT')
...
</form>
или
<form action = "/foo/bar" method = "POST">
{{ method_field('PUT') }}
...
</form>
Возможный дубликат Использование метода PUT в HTML-форме