Ошибка Laravel 5.6, Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException " - PullRequest
0 голосов
/ 19 декабря 2018

Я изменил имя контроллера с помощью маршрута и отправил форму этого метода записи, но он не работал, я отправил его из модального

У меня есть add {{method_field ('patch')}}, но он все еще не работает

Это из просмотр :

<form action="{{route('edit kode', 'test')}}" method="post">
                {{ method_field('patch') }}
                {{ csrf_field() }}

                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <i class="material-icons">clear</i>
                    </button>
                    <h5 class="modal-title">Edit Data</h5>
                </div>
                <div class="modal-body">
                    <div class="row">
                        <div class="col-sm-12">
                            <div class="form-group">
                                <label class="bmd-label-floating">Kode</label>
                                <input type="hidden" class="form-control" id="modalidkode">
                                <input type="text" class="form-control" id="modalkode" readonly>
                            </div>
                        </div>
                        <div class="col-sm-12">
                            <div class="form-group">
                                <label class="bmd-label-floating">Nama Kode</label>
                                <input type="text" class="form-control" id="modalnamakode" required>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-danger" data-dismiss="modal"
                            style="margin-right: 10px">Batal
                    </button>
                    <button type="submit" class="btn btn-info">Simpan Perubahan</button>
                </div>

Контроллер

public function editCode(Request $request){
    dd($request->all());
    $edCode="05.01";
    return redirect()->back()->withSuccess($edCode. " changed");
}

Маршрут

Route::post('/pengaturan/edit', 'AllCodeController@editCode')->name('edit kode');

1 Ответ

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

Вы ожидаете, что запрос будет POST запросом в ваших маршрутах, но ваша форма отправляет запрос PATCH (из-за method_field('patch') вверху формы).Удалите вызов method_field() или измените Route::post(...) на Route::patch(...).

Подробнее о подмене метода формы можно прочитать в документации Laravel :

HTML-формы не поддерживают действия PUT, PATCH или DELETE.Таким образом, при определении маршрутов PUT, PATCH или DELETE, которые вызываются из формы HTML, вам необходимо добавить в форму скрытое поле _method.Значение, отправленное с полем _method, будет использоваться в качестве метода HTTP-запроса:

<form action="/foo/bar" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
...