40 дополнительных правил валидации в Laravel

Правила валидации в Ларавел

В системе валидации 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
Перевод: Demiurge Ash