Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmCOEd 236 of 252 menu
◀ ▶

Редактирование записи CRUD в Laravel

Update - изменить существующую запись. Обычно это отдельная страница с формой. Важно понять два момента: как поля формы изначально получают данные из базы и что происходит после нажатия кнопки.

Как данные появляются в форме

Сначала по id из URL находят работника. Затем передают его в шаблон и подставляют значения в атрибуты value:

<?php public function edit($id) { $employee = Employee::findOrFail($id); return view('employees.edit', [ 'employee' => $employee, ]); } ?>
<form action="/employees/{{ $employee->id }}" method="POST"> @csrf @method('PUT') <input name="name" value="{{ $employee->name }}"> <input name="surname" value="{{ $employee->surname }}"> <input name="age" value="{{ $employee->age }}"> <input name="salary" value="{{ $employee->salary }}"> <input type="submit"> </form>

Без значений в value форма была бы пустой, как при создании. С ними пользователь видит текущие данные и может их поправить.

Что после кнопки

После отправки приходит POST, но метод подменяют на PUT через @method('PUT'). Маршрут:

<?php Route::get('/employees/{id}/edit', [EmployeeController::class, 'edit']); Route::put('/employees/{id}', [EmployeeController::class, 'update']); ?>

В действии находят ту же запись и обновляют поля, затем редирект:

<?php public function update(Request $request, $id) { $employee = Employee::findOrFail($id); $employee->name = $request->input('name'); $employee->surname = $request->input('surname'); $employee->age = $request->input('age'); $employee->salary = $request->input('salary'); $employee->save(); return redirect('/employees'); } ?>

В таблице списка - ссылка на редактирование с id работника.

Сделайте маршрут редактирования с параметром id.

При GET покажите форму, заполненную данными работника.

При PUT обновите запись и сделайте редирект на список.

В таблице добавьте ссылку на редактирование каждого работника.

Расскажите своими словами: зачем в форме @method('PUT').

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить