Почему при отправке формы методом PUT я получил запрос GET? - PullRequest
0 голосов
/ 07 декабря 2018

В моем приложении 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">

с маршрутами, определенными в маршрутах / 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 запрос, что не так в моей форме?

Спасибо!

1 Ответ

0 голосов
/ 07 декабря 2018

HTML-формы поддерживают только GET и POST.

Из документов:

Поскольку HTML-формы не могут выполнять запросы PUT, PATCH или DELETE, выпотребуется добавить скрытое поле _method, чтобы подделать эти HTTP-глаголы.

Вы можете использовать вспомогательную директиву method_field или директиву @ method , чтобы добавитьскрытый ввод.

<form action="/foo/bar" method="POST">
    @method('PUT')
    ...
</form>

или

<form action="/foo/bar" method="POST">
    {{ method_field('PUT') }}
    ...
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...