不允许使用方法,但正在重新使用代码

时间:2018-10-16 15:22:55

标签: laravel laravel-5.5

我试图从控制器中调用更新方法,该控制器已定义了所有路由(一旦定义了其中的一条路由,是否可以使用资源定义路由?出现错误...),但是正确的知道,即使我在其他工作路线和视图中使用相同的代码,也遇到了错误。 您能帮我找出错误吗? 预先感谢。

路线(所有其他路线都可以,但是可以更新)。

    Route::get('notas/notasGet/', 'NotasController@notasGet')->name('notas.notasGet');
    Route::post('notas/notasPost/', 'NotasController@notasPost')->name('notas.notasPost');
    Route::get('notas/create/', 'NotasController@create')->name('notas.create');
    Route::get('notas/store/', 'NotasController@store')->name('notas.store');
    Route::post('notas/update/{id}', 'NotasController@update')->name('notas.update');

实际上我在参数方面还没有成功,但是假设它会在调用完成后出现。

控制器(尖端的解决方案)

public function update(Request $request, Nota $nota)
{
    //
}

视图

            <main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
              <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
                <h1 class="h5">Nota de venta</h1>
                <div class="btn-toolbar mb-2 mb-md-0">
                  <div class="btn-group mr-2">
                    <button class="btn btn-sm btn-outline-secondary">Exportar</button>
                  </div>
                </div>
              </div>

                <div class="border-bottom">

                        <div class="col-md-8 order-md-1 ">

                          <form method="post" action="{{ route('notas.update',[$nota->idNota]) }}">
                            {{ csrf_field() }}
                            <input type="hidden" name="_method" value="PUT">


                              <div class="checkbox mb-3">
                                <label>
                                  <input type="checkbox" value="true"> Pagada
                                </label>
                              </div>

                              <div class="col-md-12">
                                <label for="usuario">Usuario</label>
                                <select class="custom-select d-block w-100" id="usuario">
                                  <option value="">Selecciona...</option>
                                  <option>United States</option>
                                </select>
                                <div class="invalid-feedback">
                                  Please select a valid country.
                                </div>
                              </div>
                              <p>
                                <div class="form-group">
                                  <label for="strNota">Comentarios</label>
                                  <textarea class="form-control" rows="3" id="strNota" name="text"></textarea>
                                </div>
                              </p>
                            <p>
                            <hr class="mb-4">

                            <div >

                              <button type="submit" class="btn btn-primary" id="submitForm">Guardar cambios <br> en la venta</button>
                            </div>

                            </p>
                          </form>
                        </div>

                </div>

更新调用来自创建调用,我将代码发布在此处,并且属于同一控制器。

public function create()
{
    //
    $lockers = null;
    $lockers = Locker::all();
    $eventos = null;
    $eventos = Evento::all();
    $cajaAbierta = Caja::whereRaw('dtmCorte IS NULL')->get()->first();
    $currentTime = Carbon::now('-5:00');
    $cargos = null;
    $cargos = Cargo::all();
    $productos = ProductoServicioEvento::all();

    if($cajaAbierta)
    {
        $nota = Nota::create(
            [
                'idCaja'=>$cajaAbierta->idCaja,
                'idRealiza'=>$cajaAbierta->idUsuario,
                'dtmHoraCargo'=>$currentTime,
            ]
        );

        if($nota)
        {
//                return redirect()->route('grupos.index')->with('success','Grupo creado con éxito');
            return view('notas.create',['lockers'=>$lockers,'eventos'=>$eventos,'nota'=>$nota, 'cargos'=>$cargos,'productos'=>$productos]);
        }
    }
}

在导航器上,单击“ Guardar cambios en la venta”按钮时进行的测试。

enter image description here

错误。

enter image description here

1 个答案:

答案 0 :(得分:1)

您已将Method更改为PUT

<input type="hidden" name="_method" value="PUT">

但是您在这里将Route定义为POST

Route::post('notas/update/{id}', 'NotasController@update')->name('notas.update');

这就是原因

  

此处不允许方法异常

只需将您的路线更改为PUT

Route::put('notas/update/{id}', 'NotasController@update')->name('notas.update');
相关问题