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

Сохранение записи в Livewire

Форма уже отправляется, и заголовок с текстом лежат в свойствах компонента. На экране они видны, но в базе строки ещё нет: после обновления страницы введённое пропадёт.

Чтобы пост сохранился, метод save должен создать запись через модель, как в обычном Laravel-приложении.

Пусть в проекте есть модель Post с разрешёнными для заполнения полями заголовка и текста:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = ['title', 'body']; } ?>

Давайте оформим форму с wire:submit:

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

Давайте в save создадим запись из свойств формы:

<?php namespace App\Livewire; use App\Models\Post; use Livewire\Component; class PostForm extends Component { public $title = ''; public $body = ''; public function save() { Post::create([ 'title' => $this->title, 'body' => $this->body, ]); } public function render() { return view('livewire.post-form'); } } ?>

Сохраните работника в базу.

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