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

Директива @error

Директива @error в Livewire предназначена для вывода сообщений об ошибках валидации, которые возникают при отправке форм или выполнении действий. Она работает аналогично одноименной директиве из стандартного Blade, но интегрирована с механизмом валидации Livewire. В качестве аргумента директива принимает имя проверяемого поля.

Синтаксис

@error('fieldName') <span>{{ $message }}</span> @enderror

Пример

Давайте создадим форму с полем ввода имени и кнопкой отправки. В компоненте добавим правило валидации, требующее, чтобы поле имени было обязательным. При возникновении ошибки директива @error выведет соответствующее сообщение:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesRule; class UserForm extends Component { public $name = ''; #[Rule('required', message: 'The name field is required.')] public function save() { $this->validate(); // ... saving logic } public function render() { return view('livewire.user-form'); } } ?>
<form wire:submit="save"> <div> <input type="text" wire:model="name" placeholder="Enter name"> @error('name') <span style="color: red;">{{ $message }}</span> @enderror </div> <button type="submit">Save</button> </form>

Результат выполнения кода (при пустом поле и отправке):

<form> <div> <input type="text" placeholder="Enter name"> <span style="color: red;">The name field is required.</span> </div> <button type="submit">Save</button> </form>

Пример

В этом примере мы покажем, как использовать директиву @error для отображения ошибок валидации сразу нескольких полей формы. Добавим дополнительное поле email с соответствующим правилом:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesRule; class ContactForm extends Component { public $email = ''; public $message = ''; #[Rule('required|email', message: 'Please enter a valid email.')] public function submit() { $this->validate(); // ... sending logic } public function render() { return view('livewire.contact-form'); } } ?>
<form wire:submit="submit"> <div> <input type="email" wire:model="email" placeholder="Email"> @error('email') <span style="color: red;">{{ $message }}</span> @enderror </div> <div> <textarea wire:model="message" placeholder="Message"></textarea> @error('message') <span style="color: red;">{{ $message }}</span> @enderror </div> <button type="submit">Send</button> </form>

Результат выполнения кода (при неверном email и пустом сообщении):

<form> <div> <input type="email" placeholder="Email"> <span style="color: red;">Please enter a valid email.</span> </div> <div> <textarea placeholder="Message"></textarea> <span style="color: red;">The message field is required.</span> </div> <button type="submit">Send</button> </form>

Смотрите также

  • директиву @this,
    которая дает доступ к экземпляру компонента из JavaScript
  • директиву @script,
    которая позволяет выполнять JavaScript код в контексте компонента
  • директиву @assets,
    которая подключает ресурсы Livewire (стили и скрипты)
  • директиву @entangle,
    которая синхронизирует данные между Livewire и Alpine.js
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить