Класс Validator
Объект Validator encapsulates все методы, связанные с проверкой данных для модели. Он также предоставляет API для динамического изменения правил проверки для каждого поля модели.
Реализует ArrayAccess для удобного изменения правил в наборе.
Ссылка: https://book.cakephp.org/4/ru/core-libraries/validation.html
Константы
-
intEMPTY_ALLself::EMPTY_STRING | self::EMPTY_ARRAY | self::EMPTY_FILE | self::EMPTY_DATE | self::EMPTY_TIME
Сочетание всех флагов EMPTY_*
-
intEMPTY_ARRAY2
Флаг для allowEmptyFor()
Если передан пустой массив, он будет распознан как пустой.
-
intEMPTY_DATE8
Флаг для allowEmptyFor()
Если передан массив, содержащий ключ
year, и только пустые строки или null-значения, он будет распознан как пустой. -
intEMPTY_FILE4
Флаг для allowEmptyFor()
Если передан массив, содержащий ключи
name,type,tmp_nameиerror, и значениеerrorравноUPLOAD_ERR_NO_FILE, значение будет распознано как пустое.Если передан экземпляр \Psr\Http\Message\UploadedFileInterface, значение возвращаемое методом getError() должно быть равно
UPLOAD_ERR_NO_FILE. -
intEMPTY_NULL0
Флаг для allowEmptyFor()
Если передан
null, он будет распознан как пустой. -
intEMPTY_STRING1
Флаг для allowEmptyFor()
Если передан пустая строка, она будет распознана как пустая.
-
intEMPTY_TIME16
Флаг для allowEmptyFor()
Если передан массив, содержащий ключ
hour, и только пустые строки или null-значения, он будет распознан как пустой. -
stringNESTED'_nested'
Используется для флагования вложенных правил, созданных с помощью addNested() и addNestedMany()
-
stringWHEN_CREATE'create'
Используя 'create', вы можете сделать поля обязательными при первом создании записей.
-
stringWHEN_UPDATE'update'
Используя 'update', вы можете сделать поля обязательными при их обновлении.
Краткое описание свойств
- $_allowEmptyFlags protected
arrayСодержит флаги, указывающие, что пусто для каждого соответствующего поля.
- $_allowEmptyMessages protected
arrayСодержит сообщения проверки, связанные с проверкой пустоты для каждого соответствующего поля.
- $_defaultProviders protected static
array<string, object|string>Ассоциативный массив объектов или классов, используемых в качестве списка поставщиков по умолчанию.
- $_fields protected
array<string,Cake\Validation\ValidationSet>Содержит массив объектов ValidationSet.
- $_presenceMessages protected
arrayСодержит сообщения проверки, связанные с проверкой наличия для каждого соответствующего поля.
- $_providers protected
array<string, object|string>Ассоциативный массив объектов или классов, содержащих методы, используемые для проверки.
- $_stopOnFailure protected
boolОпределяет, следует ли применять последний флаг к сгенерированному правилу(ам).
- $_useI18n protected
boolОпределяет, следует ли использовать функции I18n для перевода сообщений об ошибках по умолчанию.
Краткое описание методов
-
__construct() public
Конструктор
-
__debugInfo() public
Получить печатную версию этого объекта.
-
_canBeEmpty() protected
Возвращает значение, указывающее, может ли поле быть пустым в соответствии с
allowEmpty -
_checkPresence() protected
Возвращает false, если проверка для переданного набора правил должна быть остановлена из-за отсутствия поля в массиве данных
-
_convertValidatorToArray() protected
Преобразует валидатор в массив fieldName => $settings
-
_fieldIsEmpty() protected deprecated
Возвращает true, если поле пустое в переданном массиве данных
-
_processRules() protected
Перебирает каждое правило в наборе валидации и собирает ошибки, возникшие в результате их выполнения
-
add() public
Добавляет новое правило к набору правил поля. Если второй аргумент является массивом, то список правил для поля будет заменён вторым аргументом, и третий аргумент будет проигнорирован.
-
addDefaultProvider() public static
Связывает объект с именем, чтобы его можно было использовать в качестве поставщика по умолчанию.
-
addNested() public
Добавляет вложенный валидатор.
-
addNestedMany() public
Добавляет вложенный валидатор.
-
allowEmpty() public deprecated
Разрешает поле быть пустым. Вы также можете передать массив. Использование массива позволит вам указать следующие ключи:
-
allowEmptyArray() public
Разрешает поле быть пустым массивом.
-
allowEmptyDate() public
Разрешает поле быть пустой датой.
-
allowEmptyDateTime() public
Разрешает поле быть пустой датой/временем.
-
allowEmptyFile() public
Разрешает поле быть пустым файлом.
-
allowEmptyFor() public
Метод низкого уровня, указывающий, что поле может быть пустым.
-
allowEmptyString() public
Разрешает поле быть пустой строкой.
-
allowEmptyTime() public
Разрешает поле быть пустым временем.
-
alphaNumeric() public
Добавить правило alphanumeric к полю.
-
ascii() public
Добавить правило валидации, чтобы убедиться, что поле содержит только байты ASCII
-
asciiAlphaNumeric() public
Добавить правило ascii-alphanumeric к полю.
-
boolean() public
Добавить правило валидации boolean к полю.
-
containsNonAlphaNumeric() public deprecated
Добавить правило для проверки наличия не-alphanumeric символов в поле.
-
count() public
Возвращает количество полей с правилами валидации
-
creditCard() public
Добавить правило кредитной карты к полю.
-
date() public
Добавить правило валидации формата даты к полю.
-
dateTime() public
Добавить правило валидации формата даты и времени к полю.
-
decimal() public
Добавить правило валидации decimal к полю.
-
email() public
Добавить правило валидации email к полю.
-
equalToField() public
Добавить правило сравнения, где одно поле равно другому.
-
equals() public
Добавить правило сравнения "равно" к полю.
-
errors() public deprecated
Проверяет и возвращает массив неверных полей и их сообщений об ошибках.
-
field() public
Возвращает объект ValidationSet, содержащий все правила валидации для поля. Если вторым аргументом передаётся ValidationSet, то он заменит любой другой ранее определённый набор правил.
-
getDefaultProvider() public static
Возвращает поставщика по умолчанию, сохранённого под этим именем, если он существует.
-
getDefaultProviders() public static
Получить список поставщиков по умолчанию.
-
getIterator() public
Возвращает итератор для каждого поля, которое нужно проверить.
-
getNotEmptyMessage() public
Получить сообщение notEmpty для поля
-
getProvider() public
Возвращает поставщика, сохранённого под этим именем, если он существует.
-
getRequiredMessage() public
Получить сообщение required для поля
-
greaterThan() public
Добавить правило сравнения "больше чем" к полю.
-
greaterThanField() public
Добавить правило сравнения, где одно поле больше другого.
-
greaterThanOrEqual() public
Добавить правило сравнения "больше или равно" к полю.
-
greaterThanOrEqualToField() public
Добавить правило сравнения, где одно поле больше или равно другому.
-
hasAtLeast() public
Добавить правило валидации, чтобы убедиться, что поле является массивом, содержащим не менее указанного количества элементов
-
hasAtMost() public
Добавить правило валидации, чтобы убедиться, что поле является массивом, содержащим не более указанного количества элементов
-
hasField() public
Проверить, содержит ли валидатор какие-либо правила для данного поля.
-
hexColor() public
Добавить правило валидации, чтобы гарантировать, что поле имеет значение цвета в формате 6-значного шестнадцатеричного кода.
-
inList() public
Добавить правило валидации, чтобы гарантировать, что значение поля входит в разрешённый список.
-
integer() public
Добавить правило валидации, чтобы гарантировать, что поле имеет целочисленное значение.
-
invertWhenClause() protected
Инвертировать условие when для создания правил notEmpty.
-
ip() public
Добавить правило валидации IP-адреса к полю.
-
ipv4() public
Добавить правило валидации IPv4-адреса к полю.
-
ipv6() public
Добавить правило валидации IPv6-адреса к полю.
-
isArray() public
Добавить правило валидации, чтобы гарантировать, что поле содержит массив.
-
isEmpty() protected
Возвращает true, если поле пусто в переданном массиве данных.
-
isEmptyAllowed() public
Возвращает, разрешено ли оставить поле пустым для новой или уже существующей записи.
-
isPresenceRequired() public
Возвращает, обязательно ли заполнять поле для новой или уже существующей записи.
-
latLong() public
Добавить правило валидации, чтобы гарантировать, что поле является кортежем широты/долготы.
-
latitude() public
Добавить правило валидации, чтобы гарантировать, что поле является широтой.
-
lengthBetween() public
Добавить правило, которое гарантирует, что длина строки находится в заданном диапазоне.
-
lessThan() public
Добавить правило сравнения "меньше", чем для поля.
-
lessThanField() public
Добавить правило для сравнения одного поля с другим, чтобы оно было меньше.
-
lessThanOrEqual() public
Добавить правило сравнения "меньше или равно", чем для поля.
-
lessThanOrEqualToField() public
Добавить правило для сравнения одного поля с другим, чтобы оно было меньше или равно.
-
localizedTime() public
Добавить правило валидации локализованного формата времени, даты или даты и времени для поля.
-
longitude() public
Добавить правило валидации, чтобы гарантировать, что поле является долготой.
-
maxLength() public
Добавить правило валидации длины строки для поля.
-
maxLengthBytes() public
Добавить правило валидации длины строки для поля.
-
minLength() public
Добавить правило валидации длины строки для поля.
-
minLengthBytes() public
Добавить правило валидации длины строки для поля.
-
multipleOptions() public
Добавить правило валидации для множественного выбора. Сравнение по умолчанию выполняется с учётом регистра.
-
naturalNumber() public
Добавить правило валидации натурального числа для поля.
-
nonNegativeInteger() public
Добавить правило валидации, чтобы гарантировать, что поле является неотрицательным целым числом.
-
notAlphaNumeric() public
Добавить правило не-буквенно-цифрового формата для поля.
-
notAsciiAlphaNumeric() public
Добавить правило не-ASCII буквенно-цифрового формата для поля.
-
notBlank() public
Добавить правило notBlank для поля.
-
notEmpty() public deprecated
Устанавливает требование к полю — не быть пустым. Также можно передать массив. Использование массива позволит указать следующие ключи:
-
notEmptyArray() public
Требует, чтобы поле было непустым массивом.
-
notEmptyDate() public
Требует непустого значения даты.
-
notEmptyDateTime() public
Требует поля быть непустым значением даты/времени.
-
notEmptyFile() public
Требует, чтобы поле было непустым файлом.
-
notEmptyString() public
Требует, чтобы поле не было пустой строкой.
-
notEmptyTime() public
Требует, чтобы поле было непустым временем.
-
notEqualToField() public
Добавить правило для сравнения одного поля с другим, чтобы они были неравны.
-
notEquals() public
Добавить правило сравнения "не равно" для поля.
-
notSameAs() public
Добавить правило для сравнения, что два поля имеют разные значения.
-
numeric() public
Добавить правило валидации числового значения для поля.
-
offsetExists() public
Возвращает, определён ли набор правил для поля.
-
offsetGet() public
Возвращает набор правил для поля.
-
offsetSet() public
Устанавливает набор правил для поля.
-
offsetUnset() public
Удаляет набор правил для поля.
-
providers() public
Получить список поставщиков в данной валидации.
-
range() public
Добавить правило валидации, чтобы гарантировать, что поле находится в числовом диапазоне.
-
regex() public
Возвращает, соответствует ли поле заданному регулярному выражению.
-
remove() public
Удаляет правило из набора по его имени
-
requirePresence() public
Устанавливает, является ли поле обязательным для присутствия в массиве данных. Вы также можете передать массив. Использование массива позволит вам указать следующие ключи:
-
sameAs() public
Добавляет правило для сравнения двух полей друг с другом.
-
scalar() public
Добавляет правило валидации, чтобы убедиться, что поле содержит скалярное значение.
-
setProvider() public
Связывает объект с именем, чтобы он мог использоваться в качестве поставщика. Поставщики — это объекты или имена классов, которые могут содержать методы, используемые во время валидации для определения, может ли быть применено правило валидации. Все методы валидации, когда вызываются, получат полный список поставщиков, хранящихся в этом валидаторе.
-
setStopOnFailure() public
Определяет, следует ли прекратить оценку правил валидации при первом неудачном правиле.
-
time() public
Добавляет правило валидации формата времени к полю.
-
uploadedFile() public
Добавляет правило валидации, чтобы убедиться, что поле является загруженным файлом
-
url() public
Добавляет правило валидации, чтобы убедиться, что поле является URL-адресом.
-
urlWithProtocol() public
Добавляет правило валидации, чтобы убедиться, что поле является URL-адресом.
-
utf8() public
Добавляет правило валидации, чтобы убедиться, что поле содержит только байты BMP utf8.
-
utf8Extended() public
Добавляет правило валидации, чтобы убедиться, что поле содержит только байты utf8.
-
uuid() public
Добавляет правило валидации, чтобы убедиться, что поле является UUID.
-
validate() public
Проверяет и возвращает массив невалидных полей и их сообщений об ошибках.
Подробное описание методов
__construct() public
__construct()
Конструктор
__debugInfo() public
__debugInfo(): array<string, mixed>
Получить печатную версию этого объекта.
Возвращает
array<string, mixed>_canBeEmpty() protected
_canBeEmpty(Cake\Validation\ValidationSet $field, array<string, mixed> $context): bool
Возвращает, может ли поле быть пустым в соответствии с allowEmpty
Параметры
-
Cake\Validation\ValidationSet$field набор правил для поля
-
array<string, mixed>$context список пар «ключ-значение», содержащий контекст валидации.
Возвращает
bool_checkPresence() protected
_checkPresence(Cake\Validation\ValidationSet $field, array<string, mixed> $context): bool
Возвращает false, если какая-либо валидация для переданного набора правил должна быть остановлена из-за отсутствия поля в массиве данных
Параметры
-
Cake\Validation\ValidationSet$field Набор правил для поля.
-
array<string, mixed>$context Список пар «ключ-значение», содержащий контекст валидации.
Возвращает
bool_convertValidatorToArray() protected
_convertValidatorToArray(string|int $fieldName, array<string, mixed> $defaults = [], array<string, mixed>|string $settings = []): array<array>
Преобразует валидатор в массив fieldName => $settings
Параметры
-
string|int$fieldName имя поля
-
array<string, mixed>$defaults optional значения по умолчанию
-
array<string, mixed>|string$settings optional настройки из данных
Возвращает
array<array>Исключения
InvalidArgumentException_fieldIsEmpty() protected
_fieldIsEmpty(mixed $data): bool
Возвращает true, если поле пусто в переданном массиве данных
Параметры
-
mixed$data Значение для проверки.
Возвращает
bool_processRules() protected
_processRules(string $field, Cake\Validation\ValidationSet $rules, array $data, bool $newRecord): array<string, mixed>
Перебирает каждое правило в наборе валидации и собирает ошибки, полученные в результате их выполнения
Параметры
-
string$field Имя поля, которое обрабатывается
-
Cake\Validation\ValidationSet$rules список правил для поля
-
array$data полные данные, переданные валидатору
-
bool$newRecord является ли это новым записями или существующим
Возвращает
array<string, mixed>add() public
add(string $field, array|string $name, Cake\Validation\ValidationRule|array $rule = []): $this
Добавляет новое правило к набору правил поля. Если второй аргумент является массивом, то список правил для поля будет заменен вторым аргументом, а третий аргумент будет проигнорирован.
Пример:
$validator
->add('title', 'required', ['rule' => 'notBlank'])
->add('user_id', 'valid', ['rule' => 'numeric', 'message' => 'Invalid User'])
$validator->add('password', [
'size' => ['rule' => ['lengthBetween', 8, 20]],
'hasSpecialCharacter' => ['rule' => 'validateSpecialchar', 'message' => 'not valid']
]); Параметры
-
string$field Имя поля, к которому будет добавлено правило
-
array|string$name Псевдоним для одного правила или массива нескольких правил
-
Cake\Validation\ValidationRule|array$rule optional правило для добавления
Возвращает
$thisИсключения
InvalidArgumentExceptionЕсли числовой индекс не может быть преобразован в строковый
addDefaultProvider() public static
addDefaultProvider(string $name, object|string $object): void
Связывает объект с именем, чтобы его можно было использовать в качестве поставщика по умолчанию.
Параметры
-
string$name Имя, под которым должен быть установлен поставщик.
-
object|string$object Объект поставщика или имя класса.
Возвращает
voidaddNested() public
addNested(string $field, Cake\Validation\Validator $validator, string|null $message = null, callable|string|null $when = null): $this
Добавляет вложенный валидатор.
Вложенные валидаторы позволяют определить валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят, когда необходимо валидировать поддокумент или сложный массив.
Этот метод предполагает, что поддокумент имеет отношение 1:1 к родительскому элементу.
Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные к родителю, будут иметь те же значения во вложенном валидаторе при оценке правил.
Параметры
-
string$field Корневое поле для вложенного валидатора.
-
Cake\Validation\Validator$validator Вложенный валидатор.
-
string|null$message optional Сообщение об ошибке при ошибке правила.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisaddNestedMany() public
addNestedMany(string $field, Cake\Validation\Validator $validator, string|null $message = null, callable|string|null $when = null): $this
Добавляет вложенный валидатор.
Вложенные валидаторы позволяют определять валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят для проверки множества похожих поддокументов или сложных типов массивов.
Этот метод предполагает, что поддокумент имеет отношение 1:N к родительскому элементу.
Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные к родителю, будут иметь те же значения во вложенном валидаторе при оценке правил.
Параметры
-
string$field Корневое поле для вложенного валидатора.
-
Cake\Validation\Validator$validator Вложенный валидатор.
-
string|null$message optional Сообщение об ошибке при ошибке правила.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisallowEmpty() public
allowEmpty(array|string $field, callable|string|bool $when = true, string|null $message = null): $this
Разрешает пустое поле. Вы также можете передать массив. Используя массив, вы сможете указать следующие ключи:
-
whenиндивидуальное условие при проверке поля - 'message' индивидуальное сообщение для поля
Вы также можете установить when и message для всех переданных полей, индивидуальная настройка имеет приоритет над групповыми настройками.
Это противоположно notEmpty(), которое требует, чтобы поле не было пустым. Используя $mode равный 'create' или 'update', вы можете разрешить поля быть пустыми, когда записи создаются впервые, или когда они обновляются.
Пример:
// Email can be empty
$validator->allowEmpty('email');
// Email can be empty on create
$validator->allowEmpty('email', Validator::WHEN_CREATE);
// Email can be empty on update
$validator->allowEmpty('email', Validator::WHEN_UPDATE);
// Email and subject can be empty on update
$validator->allowEmpty(['email', 'subject'], Validator::WHEN_UPDATE;
// Email can be always empty, subject and content can be empty on update.
$validator->allowEmpty(
[
'email' => [
'when' => true
],
'content' => [
'message' => 'Content cannot be empty'
],
'subject'
],
Validator::WHEN_UPDATE
); Можно условно разрешить пустоту поля, передав обратный вызов в качестве второго аргумента. Обратный вызов получит массив контекста валидации в качестве аргумента:
$validator->allowEmpty('email', function ($context) {
return !$context['newRecord'] || $context['data']['role'] === 'admin';
}); Этот метод правильно обнаружит пустые загрузки файлов и поля даты/времени/datetime.
Поскольку этот и notEmpty() изменяют один и тот же внутренний состояние, последний вызываемый метод будет иметь приоритет.
Параметры
-
array|string$field имя поля или список полей
-
callable|string|bool$when optional Указывает, когда поле допускается пустым. Допустимые значения — true (всегда), 'create', 'update'. Если передан вызываемый объект, поле будет разрешено быть пустым только тогда, когда вызываемый объект вернет true.
-
string|null$message optional Сообщение, которое будет отображаться, если поле не
Возвращает
$thisallowEmptyArray() public
allowEmptyArray(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустым массивом.
Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_ARRAY.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
Возвращает
$thisСм. также
allowEmptyDate() public
allowEmptyDate(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустой датой.
Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключ year присутствует.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
Возвращает
$thisСм. также
allowEmptyDateTime() public
allowEmptyDateTime(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустой датой/временем.
Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключи year и hour присутствуют.
Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_DATE + EMPTY_TIME.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт false.
Возвращает
$thisСм. также
allowEmptyFile() public
allowEmptyFile(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустым файлом.
Этот метод эквивалентен вызову allowEmptyFor() со флагом EMPTY_FILE. Поля типа файл не примут '', или [] в качестве пустых значений. Только null и загрузка файла с error равным UPLOAD_ERR_NO_FILE будут считаться пустыми.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
Возвращает
$thisСм. также
allowEmptyFor() public
allowEmptyFor(string $field, int|null $flags = null, callable|string|bool $when = true, string|null $message = null): $this
Метод низкого уровня для указания, что поле может быть пустым.
Этот метод, как правило, не следует использовать, а вместо него следует использовать:
allowEmptyString()allowEmptyArray()allowEmptyFile()allowEmptyDate()allowEmptyDatetime()allowEmptyTime()
Следует использовать их API, так как они проще в работе и чтении.
Вы также можете установить флаги, значение `when` и сообщение для всех переданных полей, при этом индивидуальные настройки имеют приоритет над групповыми настройками.
Пример:
// Email can be empty
$validator->allowEmptyFor('email', Validator::EMPTY_STRING);
// Email can be empty on create
$validator->allowEmptyFor('email', Validator::EMPTY_STRING, Validator::WHEN_CREATE);
// Email can be empty on update
$validator->allowEmptyFor('email', Validator::EMPTY_STRING, Validator::WHEN_UPDATE); Возможно условно разрешить пустоту поля, передав функцию обратного вызова в качестве второго аргумента. Функция обратного вызова получит массив контекста валидации в качестве аргумента:
$validator->allowEmpty('email', Validator::EMPTY_STRING, function ($context) {
return !$context['newRecord'] || $context['data']['role'] === 'admin';
}); Если вы хотите разрешить другие виды пустых данных для поля, вам нужно передать другие флаги:
$validator->allowEmptyFor('photo', Validator::EMPTY_FILE);
$validator->allowEmptyFor('published', Validator::EMPTY_STRING | Validator::EMPTY_DATE | Validator::EMPTY_TIME);
$validator->allowEmptyFor('items', Validator::EMPTY_STRING | Validator::EMPTY_ARRAY); Вы также можете использовать удобные обертки для этого метода. Следующие вызовы эквивалентны вышеприведённым:
$validator->allowEmptyFile('photo');
$validator->allowEmptyDateTime('published');
$validator->allowEmptyArray('items'); Параметры
-
string$field Имя поля.
-
int|null$flags необязательно Маска битов флагов EMPTY_*, которые определяют, что является пустым. Если флаги/битовая маска не указаны, только
nullбудет разрешено в качестве пустого значения.-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
Возвращает
$thisallowEmptyString() public
allowEmptyString(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустой строкой.
Этот метод эквивалентен вызову allowEmptyFor() со флагом EMPTY_STRING.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
Возвращает
$thisСм. также
allowEmptyTime() public
allowEmptyTime(string $field, string|null $message = null, callable|string|bool $when = true): $this
Разрешает поле быть пустым временем.
Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключ hour присутствует.
Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_TIME.
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле не
-
callable|string|bool$when необязательно Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.
Возвращает
$thisСм. также
alphaNumeric() public
alphaNumeric(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило проверки на алфавитно-цифровые символы к полю.
Параметры
-
string$field Поле, к которому вы хотите применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
ascii() public
ascii(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило проверки, чтобы убедиться, что поле содержит только символы ASCII.
Параметры
-
string$field Поле, к которому вы хотите применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
asciiAlphaNumeric() public
asciiAlphaNumeric(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на ascii-буквенно-цифровые символы для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
boolean() public
boolean(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на логическое значение для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
containsNonAlphaNumeric() public
containsNonAlphaNumeric(string $field, int $limit = 1, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на наличие небуквенно-цифровых символов в поле.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int$limit опционально Минимальное количество небуквенно-цифровых символов.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
count() public
count(): int
Возвращает количество полей с правилами валидации.
Возвращает
intcreditCard() public
creditCard(string $field, string $type = 'all', string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки номера кредитной карты для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$type опционально Тип карт, которые разрешены. По умолчанию «all». Можно указать массив допустимых типов карт. Пример
['mastercard', 'visa', 'amex']-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
date() public
date(string $field, array<string> $formats = ['ymd'], string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки формата даты для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array<string>$formats опционально Список допустимых форматов даты.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
dateTime() public
dateTime(string $field, array<string> $formats = ['ymd'], string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки формата даты и времени для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array<string>$formats опционально Список допустимых форматов даты и времени.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
decimal() public
decimal(string $field, int|null $places = null, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на десятичное число для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int|null$places опционально Количество десятичных знаков.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
email() public
email(string $field, bool $checkMX = false, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки электронного адреса для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
bool$checkMX опционально Проверять MX-записи.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
equalToField() public
equalToField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на равенство одного поля другому.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле для сравнения.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
equals() public
equals(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на равенство значения поля заданному значению.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
float|int$value Значение, с которым нужно сравнить данные пользователя.
-
string|null$message опционально Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when опционально «create» или «update», или вызываемый объект, возвращающий true, если правило проверки должно быть применено.
Возвращает
$thisСм. также
errors() public
errors(array $data, bool $newRecord = true): array<array>
Проверяет данные и возвращает массив несоответствующих полей и их сообщений об ошибках.
Параметры
-
array$data Данные для проверки на ошибки.
-
bool$newRecord опционально Являются ли данные новыми или обновленными.
Возвращает
array<array>field() public
field(string $name, Cake\Validation\ValidationSet|null $set = null): Cake\Validation\ValidationSet
Возвращает объект ValidationSet, содержащий все правила валидации для поля. Если во втором аргументе передается ValidationSet, он заменит любой другой набор правил, определенный ранее.
Parameters
-
string$name [optional] Имя поля для получения.
-
Cake\Validation\ValidationSet|null$set optional Набор правил для поля
Returns
Cake\Validation\ValidationSetgetDefaultProvider() public static
getDefaultProvider(string $name): object|string|null
Возвращает поставщика по умолчанию, хранящегося под этим именем, если он существует.
Parameters
-
string$name Имя, под которым следует получить поставщика.
Returns
object|string|nullgetDefaultProviders() public static
getDefaultProviders(): array<string>
Получить список поставщиков по умолчанию.
Returns
array<string>getIterator() public
getIterator(): Traversable<string,Cake\Validation\ValidationSet>
Возвращает итератор для каждого из полей, которые необходимо проверить.
Returns
Traversable<string,Cake\Validation\ValidationSet>getNotEmptyMessage() public
getNotEmptyMessage(string $field): string|null
Получает сообщение notEmpty для поля
Parameters
-
string$field Имя поля
Returns
string|nullgetProvider() public
getProvider(string $name): object|string|null
Возвращает поставщика, хранящегося под этим именем, если он существует.
Parameters
-
string$name Имя, под которым следует установить поставщика.
Returns
object|string|nullgetRequiredMessage() public
getRequiredMessage(string $field): string|null
Получает обязательное сообщение для поля
Parameters
-
string$field Имя поля
Returns
string|nullgreaterThan() public
greaterThan(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавить правило сравнения "больше чем" для поля.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
float|int$value Значение, больше которого должны быть данные пользователя.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
greaterThanField() public
greaterThanField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавить правило для сравнения одного поля с другим, чтобы первое было больше второго.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
string$secondField Поле, с которым вы хотите сравнить.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
greaterThanOrEqual() public
greaterThanOrEqual(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавить правило сравнения "больше или равно" для поля.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
float|int$value Значение, больше или равно которому должны быть данные пользователя.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
greaterThanOrEqualToField() public
greaterThanOrEqualToField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавить правило для сравнения одного поля с другим, чтобы первое было больше или равно второму.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
string$secondField Поле, с которым вы хотите сравнить.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
hasAtLeast() public
hasAtLeast(string $field, int $count, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является массивом, содержащим как минимум указанное количество элементов.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
int$count Количество элементов, которое должно быть как минимум в массиве.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
hasAtMost() public
hasAtMost(string $field, int $count, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является массивом, содержащим не более указанного количества элементов.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
int$count Максимальное количество элементов, которое должно быть в поле.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
hasField() public
hasField(string $name): bool
Проверить, содержит ли валидатор какие-либо правила для данного поля.
Parameters
-
string$name Имя поля для проверки.
Returns
boolhexColor() public
hexColor(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является 6-значным шестнадцатеричным значением цвета.
Parameters
-
string$field Поле, к которому вы хотите применить правило.
-
string|null$message optional Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when optional Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно применяться.
Returns
$thisSee Also
inList() public
inList(string $field, array $list, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что значение поля находится в разрешенном списке.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array$list Список допустимых значений.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
integer() public
integer(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле имеет целочисленное значение.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
invertWhenClause() protected
invertWhenClause(callable|string|bool $when): callable|string|bool
Инвертировать условие when для создания правил notEmpty
Параметры
-
callable|string|bool$when Указывает, когда поле не должно быть пустым. Допустимые значения: true (всегда), 'create', 'update'. Если передано вызываемый объект, то поле будет разрешено быть пустым только когда обратный вызов возвращает false.
Возвращаемое значение
callable|string|boolip() public
ip(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для IP-адресов в поле.
Это правило будет принимать адреса IPv4 и IPv6.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
ipv4() public
ipv4(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для IPv4-адресов в поле.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
ipv6() public
ipv6(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для IPv6-адресов в поле.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
isArray() public
isArray(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле содержит массив.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
isEmpty() protected
isEmpty(mixed $data, int $flags): bool
Возвращает true, если поле пусто в переданном массиве данных
Параметры
-
mixed$data Значение для проверки.
-
int$flags Побитовая маска флагов EMPTY_*, которые определяют, что является пустым
Возвращаемое значение
boolisEmptyAllowed() public
isEmptyAllowed(string $field, bool $newRecord): bool
Возвращает, может ли поле быть пустым для новой или уже существующей записи.
Параметры
-
string$field Имя поля.
-
bool$newRecord Являются ли данные для валидации новыми или должны быть обновлены.
Возвращаемое значение
boolisPresenceRequired() public
isPresenceRequired(string $field, bool $newRecord): bool
Возвращает, может ли поле быть пропущено для новой или уже существующей записи.
Параметры
-
string$field Имя поля.
-
bool$newRecord Являются ли данные для валидации новыми или должны быть обновлены.
Возвращаемое значение
boollatLong() public
latLong(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле представляет собой пару широта/долгота.
Например: <lat>, <lng>
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
latitude() public
latitude(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является широтой.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
lengthBetween() public
lengthBetween(string $field, array $range, string|null $message = null, callable|string|null $when = null): $this
Добавить правило, гарантирующее, что длина строки находится в заданном диапазоне.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array$range Включительно минимальная и максимальная длина, разрешенная для поля.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно «create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisИсключения
InvalidArgumentExceptionСм. также
lessThan() public
lessThan(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавить правило сравнения меньше для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
float|int$value Значение, которое пользовательские данные должны быть меньше.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
lessThanField() public
lessThanField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавить правило для сравнения, чтобы одно поле было меньше другого.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле, с которым нужно сравнить.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
lessThanOrEqual() public
lessThanOrEqual(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавить правило сравнения меньше или равно для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
float|int$value Значение, которому пользовательские данные должны быть меньше или равны.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
lessThanOrEqualToField() public
lessThanOrEqualToField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавить правило сравнения, чтобы одно поле было меньше или равно другому.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле, с которым нужно сравнить.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
localizedTime() public
localizedTime(string $field, string $type = 'datetime', string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации формата локализованного времени, даты или даты и времени к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$type необязательно Тип парсера, один из 'date', 'time' и 'datetime'
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
longitude() public
longitude(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для проверки, является ли поле долготой.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
maxLength() public
maxLength(string $field, int $max, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации длины строки для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int$max Максимальная длина, разрешенная.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
maxLengthBytes() public
maxLengthBytes(string $field, int $max, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации длины строки для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int$max Максимальная длина, разрешенная.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
minLength() public
minLength(string $field, int $min, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации длины строки для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int$min Минимальная требуемая длина.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
minLengthBytes() public
minLengthBytes(string $field, int $min, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации длины строки для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
int$min Минимальная требуемая длина.
-
string|null$message необязательно Сообщение об ошибке при невыполнении правила.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
multipleOptions() public
multipleOptions(string $field, array<string, mixed> $options = [], string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для множественного выбора. Сравнение по умолчанию регистрозависимое.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array<string, mixed>$options optional Опции для валидатора. Включает опции, определённые в \Cake\Validation\Validation::multiple(), и параметр
caseInsensitive.-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
naturalNumber() public
naturalNumber(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации для проверки на натуральное число к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
nonNegativeInteger() public
nonNegativeInteger(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является неотрицательным целым числом.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notAlphaNumeric() public
notAlphaNumeric(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на не-алфавитно-цифровые символы к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notAsciiAlphaNumeric() public
notAsciiAlphaNumeric(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило проверки на не-ASCII алфавитно-цифровые символы к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notBlank() public
notBlank(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило notBlank к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notEmpty() public
notEmpty(array|string $field, string|null $message = null, callable|string|bool $when = false): $this
Устанавливает требование для поля, чтобы оно не было пустым. Также можно передать массив. Использование массива позволит указать следующие ключи:
-
whenиндивидуальное условие для поля -
messageиндивидуальное сообщение об ошибке для поля
Также можно установить when и message для всех переданных полей, индивидуальное значение имеет приоритет над групповыми настройками.
Это противоположность allowEmpty(), которая разрешает пустое поле. Используя $mode равное 'create' или 'update', можно сделать поля обязательными при первом создании записей или при их обновлении.
Пример:
$message = 'This field cannot be empty';
// Email cannot be empty
$validator->notEmpty('email');
// Email can be empty on update, but not create
$validator->notEmpty('email', $message, 'create');
// Email can be empty on create, but required on update.
$validator->notEmpty('email', $message, Validator::WHEN_UPDATE);
// Email and title can be empty on create, but are required on update.
$validator->notEmpty(['email', 'title'], $message, Validator::WHEN_UPDATE);
// Email can be empty on create, title must always be not empty
$validator->notEmpty(
[
'email',
'title' => [
'when' => true,
'message' => 'Title cannot be empty'
]
],
$message,
Validator::WHEN_UPDATE
); Возможна условная запрет пустоты поля, передав обратный вызов в качестве третьего аргумента. Обратный вызов получит массив контекста валидации в качестве аргумента:
$validator->notEmpty('email', 'Email is required', function ($context) {
return $context['newRecord'] && $context['data']['role'] !== 'admin';
}); Поскольку этот и allowEmpty() изменяют один и тот же внутренний статус, последний вызываемый метод имеет приоритет.
Параметры
-
array|string$field имя поля или список полей
-
string|null$message optional Сообщение, которое отобразится, если поле не
-
callable|string|bool$when optional Указывает, когда поле не должно быть пустым. Допустимые значения true (всегда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет разрешено быть пустым только когда обратный вызов возвращает false.
Возвращает
$thisnotEmptyArray() public
notEmptyArray(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требует, чтобы поле было непустым массивом
Противоположность allowEmptyArray()
Параметры
-
string$field Имя поля.
-
string|null$message optional Сообщение, отображаемое, если поле пустое.
-
callable|string|bool$when optional Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.
Возвращает
$thisСм. также
notEmptyDate() public
notEmptyDate(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требует непустого значения даты
Параметры
-
string$field Имя поля.
-
string|null$message optional Сообщение, отображаемое, если поле пустое.
-
callable|string|bool$when optional Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.
Возвращает
$thisСм. также
notEmptyDateTime() public
notEmptyDateTime(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требует, чтобы поле было непустым значением даты/времени.
Противное allowEmptyDateTime
Параметры
-
string$field Имя поля.
-
string|null$message optional Сообщение, отображаемое, если поле пустое.
-
callable|string|bool$when optional Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.
Возвращает
$thisСм. также
notEmptyFile() public
notEmptyFile(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требуется, чтобы поле было непустым файлом.
Противное allowEmptyFile()
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле пустое.
-
callable|string|bool$when необязательно Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передано вызываемое значение, то поле должно быть непустым, когда обратный вызов возвращает true.
Возвращает
$thisСм. также
notEmptyString() public
notEmptyString(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требуется, чтобы поле не было пустой строкой.
Противное allowEmptyString()
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле пустое.
-
callable|string|bool$when необязательно Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передано вызываемое значение, то поле должно быть непустым, когда обратный вызов возвращает true.
Возвращает
$thisСм. также
notEmptyTime() public
notEmptyTime(string $field, string|null $message = null, callable|string|bool $when = false): $this
Требуется, чтобы поле было непустым временем.
Противное allowEmptyTime()
Параметры
-
string$field Имя поля.
-
string|null$message необязательно Сообщение, которое отображается, если поле пустое.
-
callable|string|bool$when необязательно Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передано вызываемое значение, то поле должно быть непустым, когда обратный вызов возвращает true.
Возвращает
$thisСм. также
notEqualToField() public
notEqualToField(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило для сравнения, чтобы одно поле не было равно другому.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле, с которым нужно сравнить.
-
string|null$message необязательно Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notEquals() public
notEquals(string $field, float|int $value, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило сравнения, отличное от, к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
float|int$value Значение, которому данные пользователя не должны быть равны.
-
string|null$message необязательно Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
notSameAs() public
notSameAs(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило сравнения, чтобы два поля имели разные значения.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле, с которым нужно сравнить.
-
string|null$message необязательно Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
numeric() public
numeric(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации числового значения к полю.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
offsetExists() public
offsetExists(string $field): bool
Возвращает, определен ли набор правил для поля или нет.
Параметры
-
string$field имя поля для проверки
Возвращает
booloffsetGet() public
offsetGet(string $field): Cake\Validation\ValidationSet
Возвращает набор правил для поля.
Параметры
-
string$field имя поля для проверки
Возвращает
Cake\Validation\ValidationSetoffsetSet() public
offsetSet(string $field, Cake\Validation\ValidationSet|array $rules): void
Устанавливает набор правил для поля.
Параметры
-
string$field имя поля для установки
-
Cake\Validation\ValidationSet|array$rules набор правил, которые нужно применить к полю
Возвращает
voidoffsetUnset() public
offsetUnset(string $field): void
Удаляет набор правил для поля.
Параметры
-
string$field имя поля для удаления
Возвращает
voidproviders() public
providers(): array<string>
Получение списка поставщиков в этом валидаторе.
Возвращает
array<string>range() public
range(string $field, array $range, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы гарантировать, что поле находится в числовом диапазоне.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array$range Включительно верхняя и нижняя границы допустимого диапазона.
-
string|null$message необязательно Сообщение об ошибке, когда правило не выполняется.
-
callable|string|null$when необязательно Либо 'create', либо 'update', либо вызываемый объект, который возвращает true, когда правило валидации должно быть применено.
Возвращает
$thisИсключения
InvalidArgumentExceptionСм. также
regex() public
regex(string $field, string $regex, string|null $message = null, callable|string|null $when = null): $this
Возвращает, соответствует ли поле заданному регулярному выражению.
Параметры
-
string$field Имя поля.
-
string$regex Регулярное выражение.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisremove() public
remove(string $field, string|null $rule = null): $this
Удаляет правило из набора по его имени
Пример:
$validator
->remove('title', 'required')
->remove('user_id') Параметры
-
string$field Имя поля, из которого будет удалено правило
-
string|null$rule необязательно Имя правила, которое необходимо удалить
Возвращаемое значение
$thisrequirePresence() public
requirePresence(array|string $field, callable|string|bool $mode = true, string|null $message = null): $this
Устанавливает, обязательно ли поле должно присутствовать в массиве данных. Также можно передать массив. Использование массива позволит указать следующие ключи:
-
modeиндивидуальный режим для поля -
messageиндивидуальное сообщение об ошибке для поля
Также можно установить режим и сообщение для всех переданных полей, индивидуальные настройки имеют приоритет над групповыми настройками.
Параметры
-
array|string$field имя поля или список полей.
-
callable|string|bool$mode необязательно Допустимые значения — true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет обязательно только если функция вернет true.
-
string|null$message необязательно Сообщение, которое будет отображено, если проверка наличия поля не пройдена.
Возвращаемое значение
$thissameAs() public
sameAs(string $field, string $secondField, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило для сравнения двух полей друг с другом.
Если оба поля имеют точно одинаковое значение, правило выполняется.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string$secondField Поле, с которым нужно сравнить.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
scalar() public
scalar(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы убедиться, что поле содержит скаляр.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
setProvider() public
setProvider(string $name, object|string $object): $this
Связывает объект с именем, чтобы он мог быть использован в качестве поставщика. Поставщики — это объекты или имена классов, которые могут содержать методы, используемые во время валидации для определения, можно ли применить правило валидации. Все методы валидации при вызове получат полный список поставщиков, хранящихся в этом валидаторе.
Параметры
-
string$name Имя, под которым должен быть установлен поставщик.
-
object|string$object Объект-поставщик или имя класса.
Возвращаемое значение
$thissetStopOnFailure() public
setStopOnFailure(bool $stopOnFailure = true): $this
Определяет, следует ли останавливать оценку правил валидации при первой неудаче.
При включенном значении первое не пройденное правило на поле заставит валидацию остановиться. При отключенном значении все правила будут выполняться, даже если есть ошибки.
Параметры
-
bool$stopOnFailure необязательно Применять ли последний флаг.
Возвращаемое значение
$thistime() public
time(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации формата времени для поля.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
uploadedFile() public
uploadedFile(string $field, array<string, mixed> $options, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы убедиться, что поле является загруженным файлом
Параметры
-
string$field Поле, к которому нужно применить правило.
-
array<string, mixed>$options Массив опций.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
url() public
url(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы убедиться, что поле является URL.
Этот валидатор не требует протокола.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
urlWithProtocol() public
urlWithProtocol(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы убедиться, что поле является URL.
Этот валидатор требует, чтобы URL содержал протокол.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
utf8() public
utf8(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавляет правило валидации, чтобы убедиться, что поле содержит только байты BMP utf8.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message необязательно Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when необязательно Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращаемое значение
$thisСм. также
utf8Extended() public
utf8Extended(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле содержит только байты utf8.
Это правило будет принимать 3 и 4-байтовые последовательности UTF8, которые необходимы для эмодзи.
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
uuid() public
uuid(string $field, string|null $message = null, callable|string|null $when = null): $this
Добавить правило валидации, чтобы убедиться, что поле является UUID
Параметры
-
string$field Поле, к которому нужно применить правило.
-
string|null$message optional Сообщение об ошибке, если правило не выполняется.
-
callable|string|null$when optional Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.
Возвращает
$thisСм. также
validate() public
validate(array $data, bool $newRecord = true): array<array>
Проверяет и возвращает массив несоответствующих полей и их сообщений об ошибках.
Параметры
-
array$data Данные, которые нужно проверить на ошибки
-
bool$newRecord optional являются ли данные, которые нужно проверить, новыми или обновляемыми.
Возвращает
array<array>Подробное описание свойств
$_allowEmptyFlags protected
Содержит флаги, которые указывают, что пусто для каждого соответствующего поля.
Тип
array$_allowEmptyMessages protected
Содержит сообщения валидации, связанные с проверкой пустоты для каждого соответствующего поля.
Тип
array$_defaultProviders protected static
Ассоциативный массив объектов или классов, используемых в качестве списка поставщиков по умолчанию
Тип
array<string, object|string>$_fields protected
Содержит массив объектов ValidationSet.
Тип
array<string,Cake\Validation\ValidationSet>$_presenceMessages protected
Содержит сообщения валидации, связанные с проверкой наличия для каждого соответствующего поля.
Тип
array$_providers protected
Ассоциативный массив объектов или классов, содержащих методы, используемые для валидации
Тип
array<string, object|string>$_stopOnFailure protected
Определяет, нужно ли применять последний флаг к сгенерированному правилу(ам).
Тип
bool$_useI18n protected
Определяет, нужно ли использовать функции I18n для перевода сообщений об ошибках по умолчанию
Тип
bool
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.3/class-Cake.Validation.Validator.html