Правила валидации
Все правила живут в пространстве имён Johncms\Validator\Rules. Параметры передаются именованными аргументами конструктора, поэтому указывать нужно только то, что отличается от значений по умолчанию.
Общие для большинства правил параметры:
allowEmpty — разрешить пустое значение. По умолчанию
false: поле, у которого есть правила, обязательно. Подробнее — в обзоре.message — свой текст ошибки вместо стандартного.
NotEmpty — значение заполнено
Проверяет, что поле не пустое. Отдельное правило нужно редко: остальные правила и так требуют значение. Оно пригодится, когда к полю нет других требований.
'admin_login' => [new NotEmpty()],Пустыми считаются null, пустая строка, строка из одних пробелов, пустой массив и false. Ноль (0, 0.0, '0') пустым не считается.
StringLength — длина строки
// От 2 до 50 символов
'name' => [new StringLength(min: 2, max: 50)],
// Не короче 6 символов
'password' => [new StringLength(min: 6)],
// Не длиннее 250 символов, поле можно не заполнять
'meta_keywords' => [new StringLength(max: 250, allowEmpty: true)],min
null
минимальная длина
max
null
максимальная длина
Длина считается в символах, а не в байтах. Значение, которое не является строкой (например число), правило отклоняет: если поле объявлено текстовым, оно должно приходить текстом.
EmailAddress — адрес электронной почты
checkMxRecord
false
проверять MX- или A-записи домена (запрос к DNS)
Проверка DNS требует обращения к сети и заметно медленнее проверки формата, поэтому включайте её там, где адрес действительно должен принимать письма: регистрация, смена почты в профиле.
Between — значение в диапазоне
Границы включаются в диапазон.
Значение, которое не является числом, проверку не проходит. Числовая строка ('5') считается числом.
InArray — значение из списка
haystack
[]
список допустимых значений
strict
false
строгое сравнение (с учётом типа)
По умолчанию сравнение нестрогое, потому что форма присылает строки: значение "1" совпадёт со списком [1, 2]. Если типы важны — например список собирается из перечисления, — включите strict: true.
Identical — значение совпадает с образцом
Сравнение строгое: 1 и '1' — разные значения.
token
значение, с которым сравнивают
Captcha — защитный код
Проверяет ответ на капчу, которая выбрана в настройках сайта. Как именно — решает сама капча: встроенная сравнивает значение с кодом из сессии, не учитывая регистр, внешний сервис спрашивают о присланном токене.
scope
'default'
имя формы, которую защищает капча
Область должна совпадать с той, с которой форма запрашивала задание, иначе ответ будут искать не там. Подробности — в разделе Капча.
Flood — защита от частой отправки
Проверяет, не отправлял ли посетитель сообщение слишком недавно. Значение поля не проверяется, поэтому правило относится к форме целиком.
Сколько секунд осталось ждать, подставляется в текст сообщения.
Ban — проверка банов посетителя
Тоже правило уровня формы: проверяется посетитель, а не поле.
bans
[1]
типы банов, наличие которых запрещает отправку
ModelExists — запись в базе есть
Проверяет, что в таблице модели есть строка, у которой заданное поле равно проверяемому значению.
model
—
класс модели Eloquent
field
—
поле таблицы, по которому идёт поиск
exclude
null
замыкание, сужающее выборку
ModelNotExists — записи в базе нет
Обратное правило: проверка не проходит, если запись найдена. Используется для проверки занятости имени и для отсечения повторных отправок.
Параметр exclude принимает замыкание, которое получает построитель запроса и добавляет к нему условия. Так правило узнаёт об остальных данных формы — сами правила видят только значение своего поля.
MxRecord — домен принимает почту
Проверяет наличие MX- или A-записи у домена из адреса. Обычно отдельно не нужен: его включает EmailAddress параметром checkMxRecord. Используйте его напрямую, если адрес проверяется по частям.
Значение без символа @ правило пропускает молча — о том, что это не адрес, скажет EmailAddress, и два сообщения об одной ошибке под полем не появятся.
Последнее обновление
Это было полезно?