В системе валидации Laravel существует более 60 правил, но, вдруг, вам нужно что-то особенное? Вы можете легко создать свои собственные правила проверки или же использовать те, что есть в Интернете. Давайте посмотрим, что же там есть.
22 правила от Alphametric
Начнем с Мэтта Кингшотта, старшего разработчика компании Alphametric.
Он написал довольно много статей на Medium и добавил все правила в репозиторий Github. Вот их список:
- StrongPassword: проверяет надежность пароля
- TelephoneNumber: валидный номер телефона
- RecordOwner: требует, чтобы id аутентифицированного пользователя соответствовал столбцу user_id в данной записи базы данных, например, owner:posts,id
- MonetaryFigure: денежная единица, например, $72,33
- DisposableEmail: адрес электронной почты, не являющийся одноразовым
- DoesNotExist: значение отсутствует в данной таблице / столбце базы данных
- Decimal: десятичное в соответствующем формате
- EncodedImage: значение представляет собой изображение в кодировке base64 заданного mime-типа
- LocationCoordinates: разделенный запятыми набор координат широты и долготы
- FileExists: значение — путь к существующему файлу
- Equals: значение равно другому заданному значению
- MacAddress: значение является валидным MAC-адресом
- ISBN: значение является валидным номером ISBN-10 или ISBN-13
- EndsWith: значение заканчивается заданной строкой
- EvenNumber: значение является четным числом (десятичные числа сначала преобразуются через intval)
- OddNumber: значение является нечетным числом (десятичные числа сначала преобразуются через intval)
- Lowercase: значение является строкой в нижнем регистре
- Uppercase: значение является строкой в верхнем регистре
- Titlecase: значение является строкой, где каждое слово начинается с заглавной буквы
- Domain: значение является доменом, например, google.com, www.google.com.
- CitizenIdentification: значение — идентификационный номер гражданина США, Великобритании или Франции
- WithoutWhitespace: значение не содержит пробелов
8 правил от Скотта Робинсона
Еще один хороший набор правил сделан Скоттом Робинсоном. Они находятся на сайте laravel-validation-rules.github.io:
- Colour: проверяет цвет, в настоящее время поддерживает только шестнадцатеричный код.
- Country Codes: проверяет двух- и трехсимвольные коды стран.
- Credit Card: проверяет номер кредитной карты, срок её действия или CVC.
- IP: проверяет, является ли IP-адрес публичным или частным. Поддерживает ipv4 и ipv6.
- Phone: проверяет формат номера телефона.
- Subdomain: проверяет субдомен.
- Timezone: проверяет, что введенный часовой пояс действителен в базе данных системного времени.
- US State: проверяет штаты США и провинции Канады.
5 правил от Spatie
Наша любимая команда Spatie также имеет свой собственный репозиторий с несколькими правилами:
- Authorized: пользователь авторизован для выполнения действий на экземпляре данной модели.
- CountryCode: валидный код страны стандарта ISO 3166.
- Enum: значение является частью заданного класса enum, например myclabs/php-enum.
- ModelsExist: все значения во входном массиве существуют как атрибуты для заданного класса модели.
- Delimited: строка содержит значения с разделителем, например, «sebastian@example.com, alex@example.com»
5 правил от Pineco.de
В конце 2017 года, Gergő D. Nagy из Pineco.de опубликовал статью с набором правил проверки и репозиторий. С тех пор он не обновлялся, поэтому используйте с осторожностью. Правила таковы:
Проверка пароля пользователя
Четные и Нечетные числа
Значение может быть только увеличено
Значение содержит конкретные слова
День должен быть рабочим днем
Автор: Povilas Korop
Перевод: Алексей Широков
Наш Телеграм-канал — следите за новостями о Laravel.