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

Проверка при отправке в Livewire

На /posts форма отправляет save, и пост создаётся из того, что лежит в $title и $body. Если одно из полей пустое или оба сразу, в таблице всё равно появится новая строка. После успеха поля очищаются, а бессмысленная запись остаётся в базе.

Нужен барьер до создания записи: сравнить свойства с правилами и остановить метод, если данные не подходят. В компоненте для этого вызывают проверку прямо в методе сохранения - тем же приёмом, что в контроллере, только проверяются не поля запроса, а публичные свойства формы.

Давайте в начале save в PostForm.php передадим массив правил для заголовка и текста, а создание и сброс оставим после него:

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

Не сохраняйте работника с пустым именем.

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