Метод PATCH не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD - PullRequest
0 голосов
/ 23 апреля 2020
<form action="{{ route('todo.edit',$todoedit->id,'edit') }}" method="POST" class="container">
        @csrf
        @method('PATCH')
        <div class="form-group">
        <label for="title">Title</label>
        <input type="text" class="form-control" name="title" value="{{$todoedit->title}}">
        </div>
        <div class="form-group">
        <label for="description">Description</label>
        <input type="text" class="form-control" name="description" value="{{$todoedit->description}}">
        </div>
        <button type="submit" class="btn btn-primary form-control">Update</button>
        </form>

Todo Controller:

    public function edit(Request $request,$id)
    { 
        $todo=Todo::find($id);
        $todo->title=$request->title;
        $todo->description=$request->description;
        $todo->save();
        return redirect(route('todo.index'));
    }

Я не знаю, в чем проблема, я делаю CRUD, все работает, но часть обновления не работает, она дает мне ошибка

Метод PATCH не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.

Я перепробовал все, @method('UPDATE') и PUT и все, но это не работает

1 Ответ

0 голосов
/ 23 апреля 2020

Потому что вы пишете свое тело функции обновления в методе редактирования вашего контроллера. Выполните следующие действия:

    public function update(Request $request,$id)
    { 
        $todo=Todo::find($id);
        $todo->title=$request->title;
        $todo->description=$request->description;
        $todo->save();
        return redirect(route('todo.index'));
    }

, и в вашем методе редактирования просто верните вид редактирования и передайте $todo объект этому

Тип метода редактирования: Get

Тип метода обновления: Put или Patch

Вы можете увидеть эти типы с простым запуском php artisan route:list в своем терминале.

...