Laravel редактировать записи динамически - PullRequest
0 голосов
/ 01 октября 2019

Controllers / HomeController.php

    public function edit(Task $task)
    {       
        return view('edit', compact('task'));
    }   

     public function update(Request $request, Task $task)
    {
        $request->validate(['title' => 'required|min:3', 'description' => 'required', ]);
        $task->title = $request->title;
        $task->description = $request->description;
        $task->save();
        $request->session()
            ->flash('message', 'Successfully modified the task!');
        return redirect('viewalltask');
    }

routs / web.php

Route::post('/{task}/', 'HomeController@update')->name('update');

просмотров / редактировать. blade.php

 <form action="{{url('', [$task->id])}}" method="POST">
                 <input type="hidden" name="_method" value="PUT">
                  {{ csrf_field() }}
                  <div class="row">
                     <div class="col-md-3" >
                        <label for="title" >title</label>
                        <input id="title" type="text" class="form-control" name="title" value="{{$task->title}}" required autofocus>
                     </div>
                     <div class="col-md-3">
                        <label for="description" >description</label>
                        <input id="description" type="text" class="form-control" name="description" value="{{$task->description}}" required>
                     </div>
                  </div>
                  <br>
                  <div class="row">
                     <div class="col-md-12">
                        <button type="submit" class="btn btn-primary" >
                        Edit
                        </button>
                     </div>
                  </div>
               </form>

Ошибка:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Нет сообщения

Ответы [ 2 ]

1 голос
/ 01 октября 2019

В вашем файле маршрутов вы указали неправильный метод. это должно быть так.

Route::put('/{task}', 'HomeController@update')->name('update');
0 голосов
/ 01 октября 2019

Вы используете неправильный тип метода в маршрутах по сравнению с типом метода в форме,

Route::post('/{task}/', 'HomeController@update')->name('update');

Должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...