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

Метод messages()

Метод messages используется в классе формы Livewire для определения пользовательских сообщений об ошибках валидации. Он возвращает массив, где ключи - это правила валидации, а значения - сообщения, которые будут показаны пользователю при нарушении соответствующих правил.

Синтаксис

<?php use LivewireForm; class PostForm extends Form { public function rules() { return [ 'field' => 'required|min:3', ]; } public function messages() { return [ 'field.required' => 'Поле обязательно для заполнения', 'field.min' => 'Минимальная длина 3 символа', ]; } } ?>

Пример

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

<?php namespace AppLivewireForms; use LivewireForm; class UserForm extends Form { public $name = ''; public function rules() { return [ 'name' => 'required|min:3|max:50', ]; } public function messages() { return [ 'name.required' => 'Имя пользователя обязательно', 'name.min' => 'Имя должно содержать минимум 3 символа', 'name.max' => 'Имя не должно превышать 50 символов', ]; } } ?>
<?php namespace AppLivewire; use LivewireComponent; use AppLivewireFormsUserForm; class UserComponent extends Component { public UserForm $form; public function save() { $this->form->validate(); } public function render() { return view('livewire.user-component'); } } ?>
<form wire:submit="save"> <input type="text" wire:model="form.name"> @error('form.name') <span>{{ $message }}</span> @enderror <button type="submit">Save</button> </form>

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

"Имя пользователя обязательно"

Если ввести значение менее 3 символов, результатом будет сообщение:

"Имя должно содержать минимум 3 символа"

Пример

Давайте переопределим сообщения для правил с параметрами:

<?php namespace AppLivewireForms; use LivewireForm; class ArticleForm extends Form { public $title = ''; public $content = ''; public function rules() { return [ 'title' => 'required|min:5|max:100', 'content' => 'required|min:10', ]; } public function messages() { return [ 'title.required' => 'Укажите заголовок статьи', 'title.min' => 'Заголовок должен быть длиннее :min символов', 'title.max' => 'Заголовок не может быть длиннее :max символов', 'content.required' => 'Напишите содержание статьи', 'content.min' => 'Содержание должно содержать минимум :min символов', ]; } } ?>
<?php namespace AppLivewire; use LivewireComponent; use AppLivewireFormsArticleForm; class ArticleComponent extends Component { public ArticleForm $form; public function save() { $this->form->validate(); // Saving logic... } public function render() { return view('livewire.article-component'); } } ?>
<div> <input type="text" wire:model="form.title" placeholder="Title"> @error('form.title') <div>{{ $message }}</div> @enderror <textarea wire:model="form.content" placeholder="Content"></textarea> @error('form.content') <div>{{ $message }}</div> @enderror <button wire:click="save">Publish</button> </div>

Если заголовок содержит 3 символа, результатом будет сообщение:

"Заголовок должен быть длиннее 5 символов"

Если содержание содержит 5 символов, результатом будет сообщение:

"Содержание должно содержать минимум 10 символов"

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

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