Допустим, у вас есть несколько форм на одной странице. Например, контактная форма и форма подписки на рассылку. У них обоих может быть поле email. Как узнать, какое поле из них не прошло валидацию и выдает ошибку?
Метки ошибок (ErrorBags) спешат на помощь
Если вы используете FormRequests, то всё очень просто. Вы можете установить собственный ErrorBag для конкретного FormRequest. Сейчас я всё покажу.
// ContactFormRequest.php use Illuminate\Foundation\Http\FormRequest; class ContactFormRequest extends FormRequest { protected $errorBag = 'contactForm'; }
// NewsletterFormRequest.php use Illuminate\Foundation\Http\FormRequest; class NewsletterFormRequest extends FormRequest { protected $errorBag = 'newsletterForm'; }
Ранее у вас в шаблонах было что-то типа этого:
{{ $errors->first('email') }}
Здесь использует дефолтный ErrorBag. Но, в нашем случае, мы его поменяли свой собственный. Соответственно, синтаксис тоже немного меняется. Вот так:
{{ $errors->contactForm->first('email') }} {{ $errors->newsletterForm->first('email') }}
Я надеюсь, для кого-то это будет полезным.
Автор: Stefan Bauer
Перевод: Алексей Широков
Наш Телеграм-канал — следите за новостями о Laravel.