【问题标题】:Error Laravel 5.6, Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException"错误 Laravel 5.6,Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException"
【发布时间】:2018-12-19 17:09:35
【问题描述】:

我已经使用路由调整控制器名称并发送该发布方法的表单,但它不起作用,我从模态发送它

我添加了 {{ 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');

【问题讨论】:

    标签: web laravel-5 controller routes bootstrap-modal


    【解决方案1】:

    您希望路由中的请求是 POST 请求,但您的表单正在提交 PATCH 请求(因为表单顶部的 method_field('patch'))。删除method_field() 调用,或将Route::post(...) 更改为Route::patch(...)

    您可以在the Laravel documentation 中阅读有关表单方法欺骗的更多信息:

    HTML 表单不支持 PUTPATCHDELETE 操作。因此,在定义从 HTML 表单调用的 PUTPATCHDELETE 路由时,您需要在表单中添加隐藏的 _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>
    

    【讨论】:

      猜你喜欢
      • 2019-01-06
      • 2021-06-10
      • 2020-06-22
      • 2019-07-01
      • 2018-09-06
      • 2019-04-25
      • 2014-11-20
      • 2019-04-11
      • 2018-06-21
      相关资源
      最近更新 更多