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

Класс формы в Livewire

Пусть у поста есть заголовок и текст, а оба значения лежат прямо в классе компонента. Пока полей мало, это терпимо, но с каждым новым полем класс редактора поста быстро становится тесным.

Отдельный класс формы держит только данные полей. В компоненте остаётся одно свойство $form, а в шаблоне связь идёт как wire:model="form.title".

Давайте заведём PostForm в App\Livewire\Forms с полями title и body:

<?php namespace App\Livewire\Forms; use Livewire\Form; class PostForm extends Form { public $title = ''; public $body = ''; } ?>

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

php artisan make:livewire PostEditor --class

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

<?php Route::get('/posts/editor', function () { return view('posts-editor'); }); ?>
<x-layout> <livewire:post-editor /> </x-layout>

Давайте объявим свойство формы в компоненте:

<?php namespace App\Livewire; use App\Livewire\Forms\PostForm; use Livewire\Component; class PostEditor extends Component { public PostForm $form; public function render() { return view('livewire.post-editor'); } } ?>

Давайте свяжем оба поля в шаблоне:

<div> <input type="text" wire:model="form.title" > <textarea wire:model="form.body" ></textarea> </div>

Создайте класс EmployeeForm и компонент EmployeeEditor. Имя и должность работника живут в классе формы.

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