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

Атрибут Rule

Атрибут Rule в Livewire используется для декларативного задания правил валидации свойств компонента. Он позволяет определить правила проверки данных прямо в классе компонента, используя синтаксис PHP-атрибутов. Это альтернатива методу rules, которая делает код более читаемым и удобным для поддержки.

Синтаксис

<?php use Livewire\Attributes\Rule; use Livewire\Component; class Example extends Component { #[Rule('required|email')] public $email; } ?>

Атрибут Rule принимает строку с правилами валидации, аналогичными тем, что используются в Laravel. Можно передавать как одиночное правило, так и несколько правил, разделённых вертикальной чертой |.

Пример

Давайте создадим компонент с полем ввода email и применим атрибут Rule:

<?php namespace App\Livewire; use Livewire\Attributes\Rule; use Livewire\Component; class UserForm extends Component { #[Rule('required|email')] public $email = ''; public function save() { $this->validate(); // Сохранение данных } public function render() { return view('livewire.user-form'); } } ?>
<div> <input type="text" wire:model="email"> @error('email') <span>{{ $message }}</span> @enderror <button wire:click="save">Save</button> </div>

Пример

Атрибут Rule поддерживает все правила валидации Laravel. Рассмотрим пример со сложной валидацией:

<?php namespace App\Livewire; use Livewire\Attributes\Rule; use Livewire\Component; class ArticleForm extends Component { #[Rule('required|string|min:5|max:100')] public $title = ''; #[Rule('required|string|min:20')] public $content = ''; #[Rule('required|in:draft,published')] public $status = 'draft'; public function publish() { $this->validate(); // Публикация статьи } public function render() { return view('livewire.article-form'); } } ?>
<div> <div> <label>Title:</label> <input type="text" wire:model="title"> @error('title') <span>{{ $message }}</span> @enderror </div> <div> <label>Content:</label> <textarea wire:model="content"></textarea> @error('content') <span>{{ $message }}</span> @enderror </div> <div> <label>Status:</label> <select wire:model="status"> <option value="draft">Draft</option> <option value="published">Published</option> </select> @error('status') <span>{{ $message }}</span> @enderror </div> <button wire:click="publish">Publish</button> </div>

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

  • атрибут Validate,
    который позволяет указать правила валидации для отдельных методов
  • атрибут Computed,
    который делает метод вычисляемым свойством
  • атрибут Url,
    который синхронизирует свойство с параметром URL
  • атрибут On,
    который регистрирует метод как обработчик события
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить