Десять редко используемых правил валидации Laravel

Источник: «Laravel Advanced: Top 10 Validation Rules You Didn't Know Existed»
Вам известны все правила валидации, доступные в Laravel? Подумайте ещё раз! В Laravel есть множество готовых правил валидации, способных значительно упростить написание кода. Рассмотрим 10 редко используемых правил валидации, о существовании которых некоторые не подозревали.

prohibited

Хотите убедиться, что поле отсутствует во вводимой информации? Используйте prohibited.

'username' => 'prohibited',

Если username включено в запрос, валидация будет провалена. Просто и эффективно, особенно для honeypot!

prohibits

Нужно, чтобы поле запрещало наличие другого поля? Посмотрите это.

'password' => 'prohibits:username',

Если password указан, то поле username не должно быть введено.

required_if

Это правило валидации спасает, когда нужна условная проверка.

'email' => 'required_if:contact_method,email',

Поле email требуется только в том случае, если contact_methodemail.

required_unless

Противоположность required_if. Используется для требования поля, если другое поле не имеет определённого значения.

'email' => 'required_unless:contact_method,phone',

Здесь требуется email, если в качестве contact_method не указан phone.

required_without

Это правило валидации отлично подходит, когда поле нужно только в том случае, если другое поле отсутствует.

'email' => 'required_without:phone',

Если phone не предоставлен, необходимо указать email.

required_without_all

Усовершенствуйте правила игры, требуя заполнения поля, если ни одно из других указанных полей не заполнено.

'email' => 'required_without_all:phone,address',

Если ни phone, ни address не указаны, необходимо указать email.

starts_with

Проверьте, начинается ли строка с заданного значения.

'username' => 'starts_with:admin,user',

Поле username должно начинаться либо с admin, либо с user.

ends_with

Аналогичным образом можно проверить, заканчивается ли строка определённым значением.

'username' => 'ends_with:_admin,_user',

Поле username должно заканчиваться либо _admin, либо _user.

in_array

Убедитесь, что значение поля существует в другом массиве полей.

'selected_option' => 'in_array:available_options.*',

Поле selected_option должно быть одним из значений в массиве available_options.

different

Убедитесь, что два поля имеют разные значения.

'new_password' => 'different:current_password',

Поле new_password должно отличаться от поля current_password.

Подведение итогов

Ну вот и всё! Десять очень удобных правил валидации Laravel, о которых вы могли не знать. Их использование поможет сэкономить время и сделать код чище и эффективнее.

Дополнительные материалы

Предыдущая Статья

"Умные" макеты с контейнерными запросами

Следующая Статья

Как создать PHP пакет