Метод не разрешен, но код используется повторно - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь вызвать метод обновления с контроллера, который определил все маршруты (Как только я определил один из их маршрутов, могу ли я определить маршруты с ресурсом?, Я получил ошибку ...) от miself,но точно знаю, что я получаю сообщение об ошибке, даже если я использую тот же код из другого рабочего маршрута и видаНе могли бы вы помочь мне определить ошибку?Заранее спасибо.

Маршрут (все остальные работают нормально, но обновляются).

    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 голосов
/ 16 октября 2018

Вы изменили 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...