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

Ошибка из кода в Livewire

Правила в массиве хорошо ловят пустые поля и слишком короткий заголовок. Бизнес-ограничение может быть другим: одно конкретное значение в заголовке запрещено, хотя формально оно проходит все строковые правила. Такое условие не всегда удобно выразить одной строкой в списке правил.

После удачной проверки свойств можно самому добавить ошибку на нужное поле и прервать метод, чтобы запись в базу не создалась. Сообщение попадёт туда же, куда и ошибки из правил: под поле и в общий список.

Давайте в save сразу после вызова проверки отсечём запрещённый заголовок и выйдем из метода до создания записи:

<?php namespace App\Livewire; use App\Models\Post; use Livewire\Component; class PostForm extends Component { public $title = ''; public $body = ''; public function clear() { $this->reset(); $this->resetValidation(); } public function save() { $this->validate([ 'title' => 'required|min:3', 'body' => 'required', ], [ 'title.required' => 'Enter a title', 'body.required' => 'Enter a text', ], [ 'title' => 'heading', 'body' => 'text', ]); if ($this->title === 'Admin') { $this->addError('title', 'This title is reserved'); return; } Post::create([ 'title' => $this->title, 'body' => $this->body, ]); $this->reset(); } public function render() { return view('livewire.post-form'); } } ?>

Запретите одно конкретное имя работника и покажите ошибку у этого поля.

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