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

Свойство $errors

Свойство $errors в Livewire представляет собой объект MessageBag, который хранит все ошибки валидации, возникшие при проверке данных формы. Оно автоматически заполняется после вызова методов validate или validateOnly, если валидация не прошла. Свойство доступно как в классе компонента, так и в шаблоне Blade.

Синтаксис

Свойство $errors используется в Blade-шаблоне для отображения ошибок валидации:

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

Либо для прямого доступа к ошибкам через свойство $errors:

@if ($errors->has('field_name')) <span>{{ $errors->first('field_name') }}</span> @endif

Пример

Давайте создадим компонент с формой регистрации, которая проверяет имя и email:

<?php namespace AppLivewire; use LivewireComponent; class RegistrationForm extends Component { public $name = ''; public $email = ''; protected $rules = [ 'name' => 'required|min:3|max:50', 'email' => 'required|email|max:255', ]; public function submit() { $this->validate(); // Save user... } public function render() { return view('livewire.registration-form'); } } ?>
<form wire:submit.prevent="submit"> <div> <input type="text" wire:model="name"> @error('name') <span>{{ $message }}</span> @enderror </div> <div> <input type="email" wire:model="email"> @error('email') <span>{{ $message }}</span> @enderror </div> <button type="submit">Register</button> </form>

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

<form> <div> <input type="text"> <span>The name field is required.</span> </div> <div> <input type="email"> <span>The email field is required.</span> </div> <button>Register</button> </form>

Пример

Давайте выведем все ошибки валидации с помощью свойства $errors напрямую:

@if ($errors->any()) <div> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form wire:submit.prevent="submit"> <div> <input type="text" wire:model="name"> </div> <div> <input type="email" wire:model="email"> </div> <button type="submit">Register</button> </form>

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

<div> <ul> <li>The name field is required.</li> <li>The email field is required.</li> </ul> </div> <form> <div> <input type="text"> </div> <div> <input type="email"> </div> <button>Register</button> </form>

Пример

Давайте получим первую ошибку для конкретного поля через свойство $errors:

<form wire:submit.prevent="submit"> <div> <input type="text" wire:model="name"> @if ($errors->has('name')) <span>{{ $errors->first('name') }}</span> @endif </div> <div> <input type="email" wire:model="email"> @if ($errors->has('email')) <span>{{ $errors->first('email') }}</span> @endif </div> <button type="submit">Register</button> </form>

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

<form> <div> <input type="text"> </div> <div> <input type="email"> <span>The email must be a valid email address.</span> </div> <button>Register</button> </form>

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

  • метод validate,
    который запускает валидацию свойств компонента
  • метод validateOnly,
    который проверяет только одно свойство
  • метод resetValidation,
    который очищает ошибки валидации
  • директиву wire:model,
    которая привязывает поле ввода к свойству компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить