Как обновить данные в таблице БД через форму в Laravel

Берем классический пример по созданию приложения "Список задач". Допустим мы хотим обновить статус задачи, поставить пометку "Выполнено", при этом задача будет не опказываться в списке, но из базы удаляться не будет.
Для этого создаем форму в списке задач
<form action="{{url('task/'.$task->id)}}" method="post"> {{csrf_field()}} {{ method_field('put') }} <input type="hidden" name='completed' value="1"> <button class="btn btn-success">Выполнено</button> </form>
Где {{url('task/'.$task->id)}} - куда мы отправляем запрос, обязательно нужно уникикализировать запрос, чтобы потом можно было понять что мы удаляем.
{{csrf_field()}} - защита формы от взлома
{{ method_field('put') }} - Нужный метод, который говорит об обновелениии формы.
Переходим в web.php и создаем Rout
Route::put('/task/{id}', 'TasksController@update');
А вот и контроллер, находим метод update
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;use App;class TasksController extends Controller{ public function index(){ $tasks = App\Task::all(); return view('tasks.index', compact('tasks')); } public function show($id){ $task = App\Task::find($id); return view('tasks.show', compact('task')); } public function update(Request $request, $id) { $task = App\Task::find($id); $task->completed = $request->completed; $task->save();
return redirect('/tasks'); }}

Напишите нам в WhatsApp




