Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmVdErD 208 of 252 menu
◀ ▶

Директива @error в Laravel

В прошлом уроке ошибку выводили через $errors->first. Так работает, но не всегда удобно: метод вызывается при каждом показе формы. Если ошибки нет, вернётся пустая строка - текста не будет, а место в вёрстке под сообщение уже зарезервировано. Стилизовать «красный блок ошибки» вокруг first сложнее - пустой блок может остаться и без ошибки.

Логичнее показывать разметку с сообщением только тогда, когда ошибка реально есть. В Blade для этого есть директива @error: она сама проверяет поле и выводит содержимое блока лишь при неудачной валидации. Вручную писать @if не нужно.

Ошибку по-прежнему ставим над инпутом, поле оборачиваем в div. Блок @error идёт перед input:

<div> @error('title') <span>{{ $message }}</span> @enderror <input name="title" value="{{ old('title') }}"> </div>

Внутри @error доступна переменная $message - текст ошибки для этого поля. Тег span можно заменить на p или оформить классом в CSS - структура на ваш вкус.

Пример для поля email:

<div> @error('email') <div>{{ $message }}</div> @enderror <input name="email" value="{{ old('email') }}"> </div>

Замените вывод через $errors->first на @error для поля title.

Добавьте @error для поля email.

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