Метод POST не поддерживается для этого маршрута () - PullRequest
0 голосов
/ 15 января 2020

У меня есть эта базовая c ошибка, но я не могу ее исправить ... могу ли я получить некоторую помощь, пожалуйста?

Это мое мнение, и я попытался с токенами @csrf, а также @ csrf-field и токен. Я пытался написать Post, Post, POST. (prat.store работают хорошо, проблема в обновлении.)

@if(isset($ModificationMode))

<form method="post" action="{{route('prat.update', $DataPraticien ?? '')}}">
    @csrf
    @else
    <form action="{{route('prat.store')}}" method="post">
        @endif

//stuff
//stuff
/lalala


@if(isset($ModificationMode))
    <button type="submit" class="btn btn-warning">Modifier Praticien</button>
    @else
    <button type="submit" class="btn btn-success">Ajouter Praticien</button>
    @endif

мой контроллер:

public function update(Request $request, $id)
    {
      $ModifPrat= Praticien::find($id);

      $ModifPrat->NOM = $request->input('NOM');
      $ModifPrat->ETAT_CIVIL = $request->input('ETAT_CIVIL');
      $ModifPrat->NOTE = $request->input('NOTE');
      $ModifPrat->NOTORIETE = $request->input('NOTORIETE');
      $ModifPrat->MENBRE_ASSOCIATION = $request->input('MEMBRE_ASSOCIATION');
      $ModifPrat->DIPLOME = $request->input('DIPLOME');
      $ModifPrat->save();
       return redirect()->route('homeAdmin', auth()->id());

    }

Мой маршрут - базовый c ресурс:

Route::resource('prat', 'PratController');

NB. Переменная ModificationMode - это способ использовать одну и ту же страницу для двух разных задач. Я использовал var_dump для его отладки, и переменная установлена ​​правильно, и мой prat.update обнаружен.

Спасибо;)

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Ознакомьтесь с документацией для ResourceControllers . Есть таблица, которая объясняет, как Laravel отображает методы контроллера на типы запросов. По сути, вам нужно использовать директиву @method (или вручную добавить скрытый ввод). Итак, ваша форма должна выглядеть так:

<form action="{{ route('prat.update') }}" method="POST">
    @method('PUT')
    //...
</form>
0 голосов
/ 15 января 2020

Если вы изменяете, используйте это

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

, которое вы можете сослаться на Способ спуфинга или Контроллеры ресурсов

...