РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplwPmRcEd 67 of 76 menu
◀ ▶

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

Давайте теперь возьмём экран правки поста. Заголовок в базе уже есть, а форма на странице пустая. Человек не видит старый текст и не может его поправить.

При первом появлении компонента метод mount может найти запись по номеру и заполнить поля. Метод save запишет изменения обратно через update у модели.

Пусть в проекте есть модель Post с полями заголовка и текста.

Давайте создадим компонент PostChange:

php artisan make:livewire PostChange --class

Давайте добавим маршрут правки и страницу с номером записи:

<?php Route::get('/posts/{id}/edit', function ($id) { return view('posts-edit', compact('id')); }); ?>
<x-layout> <livewire:post-change :id="$id" /> </x-layout>

Давайте в классе сохраним номер записи, заполним поля в mount и обновим строку в save:

<?php namespace App\Livewire; use App\Models\Post; use Livewire\Component; class PostChange extends Component { public $postId; public $title = ''; public $body = ''; public function mount($id) { $post = Post::find($id); $this->postId = $post->id; $this->title = $post->title; $this->body = $post->body; } public function save() { Post::find($this->postId)->update([ 'title' => $this->title, 'body' => $this->body, ]); } public function render() { return view('livewire.post-change'); } } ?>

Давайте в шаблоне оформим форму с полями заголовка и текста:

<div> <form wire:submit="save"> <input type="text" wire:model="title" > <textarea wire:model="body" ></textarea> <button type="submit"> Save </button> </form> </div>

Создайте компонент EmployeeChange. Откройте форму с уже сохранёнными именем и должностью работника и сохраните правку в базу.

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