Spec-Zone.ru › CakePHP 4.2

Класс Validator

Объект Validator инкапсулирует все методы, связанные с проверкой данных для модели. Он также предоставляет API для динамического изменения правил проверки для каждого поля модели.

Реализует ArrayAccess для удобной модификации правил в наборе

Пространство имен: Cake\Validation
Ссылка: https://book.cakephp.org/4/ru/core-libraries/validation.html

Константы

  • int
    EMPTY_ALL
    self::EMPTY_STRING | self::EMPTY_ARRAY | self::EMPTY_FILE | self::EMPTY_DATE | self::EMPTY_TIME

    Сочетание всех флагов EMPTY_*

  • int
    EMPTY_ARRAY
    2

    Флаг для allowEmptyFor()

    Когда передан пустой массив, он будет распознаваться как пустой.

  • int
    EMPTY_DATE
    8

    Флаг для allowEmptyFor()

    Когда передан массив, если он содержит ключ year, и содержит только пустые строки или значения null, он будет распознаваться как пустой.

  • int
    EMPTY_FILE
    4

    Флаг для allowEmptyFor()

    Когда передан массив, если он содержит как минимум ключи name, type, tmp_name и error, и значение ключа error равно UPLOAD_ERR_NO_FILE, значение будет распознаваться как пустое.

    Когда передан экземпляр \Psr\Http\Message\UploadedFileInterface, значение метода getError() должно быть равно UPLOAD_ERR_NO_FILE.

  • int
    EMPTY_NULL
    0

    Флаг для allowEmptyFor()

    Если передан null, он будет распознаваться как пустой.

  • int
    EMPTY_STRING
    1

    Флаг для allowEmptyFor()

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

  • int
    EMPTY_TIME
    16

    Флаг для allowEmptyFor()

    Когда передан массив, если он содержит ключ hour, и содержит только пустые строки или значения null, он будет распознаваться как пустой.

  • string
    NESTED
    '_nested'

    Используется для флагования вложенных правил, созданных с помощью addNested() и addNestedMany()

  • string
    WHEN_CREATE
    'create'

    Используя «create», вы можете сделать поля обязательными при первом создании записей.

  • string
    WHEN_UPDATE
    'update'

    Используя «update», вы можете сделать поля обязательными при их обновлении.

Резюме свойств

  • $_allowEmptyFlags protected
    array

    Содержит флаги, которые определяют, что пусто для каждого соответствующего поля.

  • $_allowEmptyMessages protected
    array

    Содержит сообщения валидации, связанные с проверкой пустоты для каждого соответствующего поля.

  • $_defaultProviders protected static
    array

    Ассоциативный массив объектов или классов, используемых в качестве списка поставщиков по умолчанию

  • $_fields protected
    Cake\Validation\ValidationSet[]

    Содержит массив объектов ValidationSet

  • $_presenceMessages protected
    array

    Содержит сообщения валидации, связанные с проверкой наличия для каждого соответствующего поля.

  • $_providers protected
    array

    Ассоциативный массив объектов или классов, содержащих методы, используемые для валидации

  • $_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

Получить печатную версию этого объекта.

Возвращает

array

_canBeEmpty() protected

_canBeEmpty(Cake\Validation\ValidationSet $field, array $context): bool

Возвращает, может ли поле быть пустым в соответствии с allowEmpty

Параметры

Cake\Validation\ValidationSet $field

набор правил для поля

array $context

список пар «ключ-значение», содержащий контекст валидации.

Возвращает

bool

_checkPresence() protected

_checkPresence(Cake\Validation\ValidationSet $field, array $context): bool

Возвращает false, если какая-либо валидация для переданного набора правил должна быть остановлена из-за отсутствия поля в массиве данных

Параметры

Cake\Validation\ValidationSet $field

Набор правил для поля.

array $context

Список пар «ключ-значение», содержащий контекст валидации.

Возвращает

bool

_convertValidatorToArray() protected

_convertValidatorToArray(int|string $fieldName, array $defaults = [], string|array $settings = []): array[]

Преобразует валидатор в массив fieldName => $settings

Параметры

int|string $fieldName

имя поля

array $defaults optional

значения по умолчанию

string|array $settings optional

настройки из данных

Возвращает

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 $field

Имя поля, которое обрабатывается

Cake\Validation\ValidationSet $rules

список правил для поля

array $data

полные данные, переданные валидатору

bool $newRecord

является ли это новым записями или существующим

Возвращает

array

add() public

add(string $field, array|string $name, arrayCake\Validation\ValidationRule $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

Псевдоним для одного правила или массива нескольких правил

arrayCake\Validation\ValidationRule $rule optional

правило для добавления

Возвращает

$this

Исключения

InvalidArgumentException
Если числовой индекс не может быть преобразован в строковый

addDefaultProvider() public static

addDefaultProvider(string $name, object|string $object): void

Связывает объект с именем, чтобы его можно было использовать в качестве поставщика по умолчанию.

Параметры

string $name

Имя, под которым должен быть установлен поставщик.

object|string $object

Объект поставщика или имя класса.

Возвращает

void

addNested() public

addNested(string $field, Cake\Validation\Validator $validator, string|null $message = null, string|callable|null $when = null): $this

Добавляет вложенный валидатор.

Вложенные валидаторы позволяют определить валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят, когда необходимо валидировать поддокумент или сложный массив.

Этот метод предполагает, что поддокумент имеет отношение 1:1 к родительскому элементу.

Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные к родителю, будут иметь те же значения во вложенном валидаторе при оценке правил.

Параметры

string $field

Корневое поле для вложенного валидатора.

Cake\Validation\Validator $validator

Вложенный валидатор.

string|null $message optional

Сообщение об ошибке при ошибке правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

addNestedMany() public

addNestedMany(string $field, Cake\Validation\Validator $validator, string|null $message = null, string|callable|null $when = null): $this

Добавляет вложенный валидатор.

Вложенные валидаторы позволяют определять валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят для проверки множества похожих поддокументов или сложных типов массивов.

Этот метод предполагает, что поддокумент имеет отношение 1:N к родительскому элементу.

Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные к родителю, будут иметь те же значения во вложенном валидаторе при оценке правил.

Параметры

string $field

Корневое поле для вложенного валидатора.

Cake\Validation\Validator $validator

Вложенный валидатор.

string|null $message optional

Сообщение об ошибке при ошибке правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

allowEmpty() public

allowEmpty(string|array $field, bool|string|callable $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() изменяют один и тот же внутренний состояние, последний вызываемый метод будет иметь приоритет.

Параметры

string|array $field

имя поля или список полей

bool|string|callable $when optional

Указывает, когда поле допускается пустым. Допустимые значения — true (всегда), 'create', 'update'. Если передан вызываемый объект, поле будет разрешено быть пустым только тогда, когда вызываемый объект вернет true.

string|null $message optional

Сообщение, которое будет отображаться, если поле не

Возвращает

$this

allowEmptyArray() public

allowEmptyArray(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустым массивом.

Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_ARRAY.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() для примеров.

allowEmptyDate() public

allowEmptyDate(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустой датой.

Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключ year присутствует.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() для примеров

allowEmptyDateTime() public

allowEmptyDateTime(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустой датой/временем.

Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключи year и hour присутствуют.

Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_DATE + EMPTY_TIME.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт false.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() для примеров.

allowEmptyFile() public

allowEmptyFile(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустым файлом.

Этот метод эквивалентен вызову allowEmptyFor() со флагом EMPTY_FILE. Поля типа файл не примут '', или [] в качестве пустых значений. Только null и загрузка файла с error равным UPLOAD_ERR_NO_FILE будут считаться пустыми.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() Для подробного использования

allowEmptyFor() public

allowEmptyFor(string $field, int|null $flags = null, bool|string|callable $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 будет разрешено в качестве пустого значения.

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

string|null $message необязательно

Сообщение, которое отображается, если поле не

Возвращает

$this

allowEmptyString() public

allowEmptyString(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустой строкой.

Этот метод эквивалентен вызову allowEmptyFor() со флагом EMPTY_STRING.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() Для подробного использования

allowEmptyTime() public

allowEmptyTime(string $field, string|null $message = null, bool|string|callable $when = true): $this

Разрешает поле быть пустым временем.

Пустые значения даты — это null, '', [] и массивы, где все значения '', а ключ hour присутствует.

Этот метод эквивалентен вызову allowEmptyFor() со флагами EMPTY_STRING + EMPTY_TIME.

Параметры

string $field

Имя поля.

string|null $message необязательно

Сообщение, которое отображается, если поле не

bool|string|callable $when необязательно

Указывает, когда поле допускается пустым. Допустимые значения: true, false, 'create', 'update'. Если передана вызываемая функция, то поле будет разрешено быть пустым только тогда, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFor() для примеров.

alphaNumeric() public

alphaNumeric(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило проверки на алфавитно-цифровые символы к полю.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::alphaNumeric()

ascii() public

ascii(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило проверки, чтобы убедиться, что поле содержит только символы ASCII.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::ascii()

asciiAlphaNumeric() public

asciiAlphaNumeric(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки на алфавитно-цифровые символы ASCII в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::asciiAlphaNumeric()

boolean() public

boolean(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки на булево значение в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::boolean()

containsNonAlphaNumeric() public

containsNonAlphaNumeric(string $field, int $limit = 1, string|null $message = null, string|callable|null $when = null): $this

Добавить правило для проверки, содержит ли поле неалфавитно-цифровые символы.

Parameters

string $field

Поле, к которому вы хотите применить правило.

int $limit optional

Минимальное количество требуемых неалфавитно-цифровых полей.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::containsNonAlphaNumeric()

count() public

count(): int

Возвращает количество полей, имеющих правила проверки.

Returns

int

creditCard() public

creditCard(string $field, string $type = 'all', string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки номера кредитной карты в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

string $type optional

Тип карт, которые вы хотите разрешить. По умолчанию 'all'. Вы также можете указать массив допустимых типов карт. Например ['mastercard', 'visa', 'amex']

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::creditCard()

date() public

date(string $field, array $formats = ['ymd'], string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки формата даты в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

array $formats optional

Список допустимых форматов даты.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::date()

dateTime() public

dateTime(string $field, array $formats = ['ymd'], string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки формата даты и времени в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

array $formats optional

Список допустимых форматов даты.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::datetime()

decimal() public

decimal(string $field, int|null $places = null, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки на десятичное число в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

int|null $places optional

Количество требуемых десятичных знаков.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::decimal()

email() public

email(string $field, bool $checkMX = false, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки адреса электронной почты в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

bool $checkMX optional

Проверять ли записи MX.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::email()

equalToField() public

equalToField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавить правило для сравнения одного поля с другим.

Parameters

string $field

Поле, к которому вы хотите применить правило.

string $secondField

Поле, с которым вы хотите сравнить.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::compareFields()

equals() public

equals(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавить правило сравнения на равенство в поле.

Parameters

string $field

Поле, к которому вы хотите применить правило.

int|float $value

Значение, которому должны быть равны данные пользователя.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило проверки должно быть применено.

Returns

$this

See Also

\Cake\Validation\Validation::comparison()

errors() public

errors(array $data, bool $newRecord = true): array[]

Проверяет и возвращает массив полей с ошибками и их сообщениями об ошибках.

Parameters

array $data

Данные, которые необходимо проверить на ошибки.

bool $newRecord optional

Являются ли данные, которые необходимо проверить, новыми или должны быть обновлены.

Returns

array[]

field() public

field(string $name, Cake\Validation\ValidationSet|null $set = null): Cake\Validation\ValidationSet

Возвращает объект ValidationSet, содержащий все правила проверки для поля. Если в качестве второго аргумента передать ValidationSet, он заменит любой другой набор правил, определённый ранее.

Параметры

string $name

[необязательно] Имя поля для получения.

Cake\Validation\ValidationSet|null $set необязательно

Набор правил для поля.

Возвращает

Cake\Validation\ValidationSet

getDefaultProvider() public static

getDefaultProvider(string $name): object|string|null

Возвращает поставщика по умолчанию, сохранённого под указанным именем, если он существует.

Параметры

string $name

Имя, под которым должен быть получен поставщик.

Возвращает

object|string|null

getDefaultProviders() public static

getDefaultProviders(): string[]

Возвращает список поставщиков по умолчанию.

Возвращает

string[]

getIterator() public

getIterator(): Cake\Validation\ValidationSet[]

Возвращает итератор для каждого из полей, которые должны быть проверены.

Возвращает

Cake\Validation\ValidationSet[]

getNotEmptyMessage() public

getNotEmptyMessage(string $field): string|null

Получает сообщение «не пусто» для поля.

Параметры

string $field

Имя поля.

Возвращает

string|null

getProvider() public

getProvider(string $name): object|string|null

Возвращает поставщика, сохранённого под указанным именем, если он существует.

Параметры

string $name

Имя, под которым должен быть установлен поставщик.

Возвращает

object|string|null

getRequiredMessage() public

getRequiredMessage(string $field): string|null

Получает сообщение «обязательно» для поля.

Параметры

string $field

Имя поля.

Возвращает

string|null

greaterThan() public

greaterThan(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило сравнения больше, чем к полю.

Параметры

string $field

Поле, к которому вы хотите применить правило.

int|float $value

Значение, которое должно быть больше, чем данные пользователя.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::comparison()

greaterThanField() public

greaterThanField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило для сравнения одного поля с другим, где оно больше.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string $secondField

Поле, с которым необходимо сравнить.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

greaterThanOrEqual() public

greaterThanOrEqual(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило сравнения больше или равно к полю.

Параметры

string $field

Поле, к которому вы хотите применить правило.

int|float $value

Значение, которому данные пользователя должны быть больше или равны.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::comparison()

greaterThanOrEqualToField() public

greaterThanOrEqualToField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило для сравнения одного поля с другим, где оно больше или равно.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string $secondField

Поле, с которым необходимо сравнить.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

hasAtLeast() public

hasAtLeast(string $field, int $count, string|null $message = null, string|callable|null $when = null): $this

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

Параметры

string $field

Поле, к которому вы хотите применить правило.

int $count

Количество элементов, которое массив должен содержать как минимум.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::numElements()

hasAtMost() public

hasAtMost(string $field, int $count, string|null $message = null, string|callable|null $when = null): $this

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

Параметры

string $field

Поле, к которому вы хотите применить правило.

int $count

Максимальное количество элементов, которое должно содержать поле.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::numElements()

hasField() public

hasField(string $name): bool

Проверяет, содержит ли валидатор правила для данного поля.

Параметры

string $name

Имя поля для проверки.

Возвращает

bool

hexColor() public

hexColor(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило проверки, чтобы гарантировать, что поле является значением шестнадцатеричного цвета из 6 символов.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create», «update» или вызываемый объект, возвращающий true, когда правило проверки должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::hexColor()

inList() public

inList(string $field, array $list, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что значение поля находится в разрешённом списке.

Параметры

string $field

Поле, к которому вы хотите применить правило.

array $list

Список допустимых вариантов.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::inList()

integer() public

integer(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что поле является целым числом.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::isInteger()

invertWhenClause() protected

invertWhenClause(bool|string|callable $when): bool|string|callable

Инвертировать условие when для создания правил notEmpty

Параметры

bool|string|callable $when

Указывает, когда поле не должно быть пустым. Допустимые значения — true (всегда), «create», «update». Если передано вызываемое значение, поле будет разрешено оставить пустым только тогда, когда обратный вызов вернёт false.

Возвращает

bool|string|callable

ip() public

ip(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации IP-адреса для поля.

Это правило будет принимать как IPv4, так и IPv6 адреса.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::ip()

ipv4() public

ipv4(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации IPv4 для поля.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::ip()

ipv6() public

ipv6(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации IPv6 для поля.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::ip()

isArray() public

isArray(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что поле содержит массив.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::isArray()

isEmpty() protected

isEmpty(mixed $data, int $flags): bool

Возвращает true, если поле пустое в переданном массиве данных

Параметры

mixed $data

Значение для проверки.

int $flags

Побитовая маска флагов EMPTY_*, определяющих, что является пустым

Возвращает

bool

isEmptyAllowed() public

isEmptyAllowed(string $field, bool $newRecord): bool

Возвращает, разрешено ли оставить поле пустым для новой или уже существующей записи.

Параметры

string $field

Имя поля.

bool $newRecord

Являются ли данные для проверки новыми или обновляемыми.

Возвращает

bool

isPresenceRequired() public

isPresenceRequired(string $field, bool $newRecord): bool

Возвращает, обязательно ли заполнять поле для новой или уже существующей записи.

Параметры

string $field

Имя поля.

bool $newRecord

Являются ли данные для проверки новыми или обновляемыми.

Возвращает

bool

latLong() public

latLong(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации для поля, чтобы убедиться, что оно является кортежем широты/долготы.

Например: <lat>, <lng>

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::uuid()

latitude() public

latitude(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации для поля, чтобы убедиться, что оно является широтой.

Параметры

string $field

Поле, к которому вы хотите применить правило.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::latitude()

lengthBetween() public

lengthBetween(string $field, array $range, string|null $message = null, string|callable|null $when = null): $this

Добавить правило, гарантирующее, что длина строки находится в определённом диапазоне.

Параметры

string $field

Поле, к которому вы хотите применить правило.

array $range

Включительно минимальная и максимальная длина, которую вы хотите разрешить.

string|null $message необязательно

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when необязательно

«create» или «update», или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

Исключения

InvalidArgumentException

См. также

\Cake\Validation\Validation::alphaNumeric()

lessThan() public

lessThan(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавить правило сравнения меньше для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int|float $value

Значение, которое пользовательские данные должны быть меньше.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::comparison()

lessThanField() public

lessThanField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавить правило для сравнения, чтобы одно поле было меньше другого.

Параметры

string $field

Поле, к которому нужно применить правило.

string $secondField

Поле, с которым нужно сравнить.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

lessThanOrEqual() public

lessThanOrEqual(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавить правило сравнения меньше или равно для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int|float $value

Значение, которому пользовательские данные должны быть меньше или равны.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::comparison()

lessThanOrEqualToField() public

lessThanOrEqualToField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавить правило сравнения, чтобы одно поле было меньше или равно другому.

Параметры

string $field

Поле, к которому нужно применить правило.

string $secondField

Поле, с которым нужно сравнить.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

localizedTime() public

localizedTime(string $field, string $type = 'datetime', string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации формата локализованного времени, даты или даты и времени к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string $type необязательно

Тип парсера, один из 'date', 'time' и 'datetime'

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::localizedTime()

longitude() public

longitude(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации для проверки, является ли поле долготой.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::longitude()

maxLength() public

maxLength(string $field, int $max, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации длины строки для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int $max

Максимальная длина, разрешенная.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::maxLength()

maxLengthBytes() public

maxLengthBytes(string $field, int $max, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации длины строки для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int $max

Максимальная длина, разрешенная.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::maxLengthBytes()

minLength() public

minLength(string $field, int $min, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации длины строки для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int $min

Минимальная требуемая длина.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::minLength()

minLengthBytes() public

minLengthBytes(string $field, int $min, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации длины строки для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

int $min

Минимальная требуемая длина.

string|null $message необязательно

Сообщение об ошибке при невыполнении правила.

string|callable|null $when необязательно

Либо 'create', либо 'update', либо вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::minLengthBytes()

multipleOptions() public

multipleOptions(string $field, array $options = [], string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации для множественного выбора. Сравнение по умолчанию регистрозависимое.

Параметры

string $field

Поле, к которому нужно применить правило.

array $options optional

Опции для валидатора. Включает опции, определённые в \Cake\Validation\Validation::multiple(), и параметр caseInsensitive.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::multiple()

naturalNumber() public

naturalNumber(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации для проверки на натуральное число к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::naturalNumber()

nonNegativeInteger() public

nonNegativeInteger(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что поле является неотрицательным целым числом.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::naturalNumber()

notAlphaNumeric() public

notAlphaNumeric(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки на не-алфавитно-цифровые символы к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::notAlphaNumeric()

notAsciiAlphaNumeric() public

notAsciiAlphaNumeric(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило проверки на не-ASCII алфавитно-цифровые символы к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::notAlphaNumeric()

notBlank() public

notBlank(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило notBlank к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

Значение 'create' или 'update' или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::notBlank()

notEmpty() public

notEmpty(string|array $field, string|null $message = null, bool|string|callable $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() изменяют один и тот же внутренний статус, последний вызываемый метод имеет приоритет.

Параметры

string|array $field

имя поля или список полей

string|null $message optional

Сообщение, которое отобразится, если поле не

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения true (всегда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет разрешено быть пустым только когда обратный вызов возвращает false.

Возвращает

$this

notEmptyArray() public

notEmptyArray(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требует, чтобы поле было непустым массивом

Противоположность allowEmptyArray()

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyArray()

notEmptyDate() public

notEmptyDate(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требует непустого значения даты

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyDate() для примеров

notEmptyDateTime() public

notEmptyDateTime(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требует, чтобы поле было непустым значением даты/времени.

Противное allowEmptyDateTime

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения false (никогда), 'create', 'update'. Если передан вызываемый объект, тогда поле будет обязательным, если обратный вызов вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyDateTime()

notEmptyFile() public

notEmptyFile(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требуется, чтобы поле было непустым файлом.

Противоположно allowEmptyFile()

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передана вызываемая функция, поле будет необходимо непустым, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyFile()

notEmptyString() public

notEmptyString(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требуется, чтобы поле не было пустой строкой.

Противоположно allowEmptyString()

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передана вызываемая функция, поле будет необходимо непустым, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyString()

notEmptyTime() public

notEmptyTime(string $field, string|null $message = null, bool|string|callable $when = false): $this

Требуется, чтобы поле было непустым временем.

Противоположно allowEmptyTime()

Параметры

string $field

Имя поля.

string|null $message optional

Сообщение, отображаемое, если поле пустое.

bool|string|callable $when optional

Указывает, когда поле не должно быть пустым. Допустимые значения: false (никогда), 'create', 'update'. Если передана вызываемая функция, поле будет необходимо непустым, когда функция вернёт true.

Возвращает

$this

См. также

\Cake\Validation\Validator::allowEmptyTime()

notEqualToField() public

notEqualToField(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило сравнения, чтобы одно поле не было равно другому.

Параметры

string $field

Поле, к которому нужно применить правило.

string $secondField

Поле, с которым нужно сравнить.

string|null $message optional

Сообщение об ошибке при неудачном выполнении правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

notEquals() public

notEquals(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило сравнения, что значение поля не равно заданному.

Параметры

string $field

Поле, к которому нужно применить правило.

int|float $value

Значение, которому данные пользователя не должны быть равны.

string|null $message optional

Сообщение об ошибке при неудачном выполнении правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::comparison()

notSameAs() public

notSameAs(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

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

Параметры

string $field

Поле, к которому нужно применить правило.

string $secondField

Поле, с которым нужно сравнить.

string|null $message optional

Сообщение об ошибке при неудачном выполнении правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

numeric() public

numeric(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации числового значения для поля.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке при неудачном выполнении правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::numeric()

offsetExists() public

offsetExists(string $field): bool

Возвращает, определён ли набор правил для поля.

Параметры

string $field

Имя поля для проверки.

Возвращает

bool

offsetGet() public

offsetGet(string $field): Cake\Validation\ValidationSet

Возвращает набор правил для поля.

Параметры

string $field

Имя поля для проверки.

Возвращает

Cake\Validation\ValidationSet

offsetSet() public

offsetSet(string $field, arrayCake\Validation\ValidationSet $rules): void

Устанавливает набор правил для поля.

Параметры

string $field

Имя поля для установки.

arrayCake\Validation\ValidationSet $rules

Набор правил для применения к полю.

Возвращает

void

offsetUnset() public

offsetUnset(string $field): void

Удаляет набор правил для поля.

Параметры

string $field

Имя поля для удаления.

Возвращает

void

providers() public

providers(): string[]

Получить список поставщиков в этом валидаторе.

Возвращает

string[]

range() public

range(string $field, array $range, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле находится в числовом диапазоне.

Параметры

string $field

Поле, к которому нужно применить правило.

array $range

Включительно верхние и нижние границы допустимого диапазона.

string|null $message optional

Сообщение об ошибке при неудачном выполнении правила.

string|callable|null $when optional

Либо 'create', либо 'update', либо вызываемая функция, которая возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

Выбрасывает

InvalidArgumentException

См. также

\Cake\Validation\Validation::range()

regex() public

regex(string $field, string $regex, string|null $message = null, string|callable|null $when = null): $this

Возвращает, соответствует ли поле заданному регулярному выражению.

Параметры

string $field

Имя поля.

string $regex

Регулярное выражение.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

remove() public

remove(string $field, string|null $rule = null): $this

Удаляет правило из набора по его имени.

Пример:

$validator
         ->remove('title', 'required')
         ->remove('user_id')

Параметры

string $field

Имя поля, из которого будет удалено правило.

string|null $rule необязательный

Имя правила, которое нужно удалить.

Возвращает

$this

requirePresence() public

requirePresence(string|array $field, bool|string|callable $mode = true, string|null $message = null): $this

Устанавливает, является ли поле обязательным для присутствия в массиве данных. Также можно передать массив. Использование массива позволит вам указать следующие ключи:

  • mode индивидуальный режим для поля
  • message индивидуальное сообщение об ошибке для поля

Также можно установить режим и сообщение для всех переданных полей, индивидуальные настройки имеют приоритет над групповыми.

Параметры

string|array $field

Имя поля или список полей.

bool|string|callable $mode необязательный

Допустимые значения: true, false, 'create', 'update'. Если передаётся вызываемый объект, то поле будет обязательным только когда callback возвращает true.

string|null $message необязательный

Сообщение, отображаемое при неудачной проверке присутствия поля.

Возвращает

$this

sameAs() public

sameAs(string $field, string $secondField, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило для сравнения двух полей друг с другом.

Если оба поля имеют точно одинаковое значение, правило пройдёт.

Параметры

string $field

Поле, к которому нужно применить правило.

string $secondField

Поле, с которым нужно сравнить.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::compareFields()

scalar() public

scalar(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле содержит скаляр.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::isScalar()

setProvider() public

setProvider(string $name, object|string $object): $this

Связывает объект с именем, чтобы он мог использоваться в качестве поставщика. Поставщики — это объекты или имена классов, которые могут содержать методы, используемые во время валидации, для определения того, может ли быть применено правило валидации. Все методы валидации при вызове получат весь список поставщиков, хранящихся в этом валидаторе.

Параметры

string $name

Имя, под которым должен быть установлен поставщик.

object|string $object

Объект поставщика или имя класса.

Возвращает

$this

setStopOnFailure() public

setStopOnFailure(bool $stopOnFailure = true): $this

Определяет, останавливать ли оценку правила валидации на первом неудачном правиле.

При включении первого неудачного правила на поле валидация остановится. При выключении все правила будут выполняться, даже если есть ошибки.

Параметры

bool $stopOnFailure необязательный

Применять ли последний флаг.

Возвращает

$this

time() public

time(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации формата времени к полю.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::time()

uploadedFile() public

uploadedFile(string $field, array $options, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле является загруженным файлом.

Для параметров см. Cake\Validation\Validation::uploadedFile()

Параметры

string $field

Поле, к которому нужно применить правило.

array $options

Массив параметров.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::uploadedFile()

url() public

url(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле является URL-адресом.

Этот валидатор не требует протокола.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::url()

urlWithProtocol() public

urlWithProtocol(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле является URL-адресом.

Этот валидатор требует, чтобы URL имел протокол.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::url()

utf8() public

utf8(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавляет правило валидации, чтобы убедиться, что поле содержит только байты utf8 BMP.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message необязательный

Сообщение об ошибке при неудачной проверке.

string|callable|null $when необязательный

«create» или «update» или вызываемый объект, возвращающий true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::utf8()

utf8Extended() public

utf8Extended(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что поле содержит только байты utf8.

Это правило будет принимать последовательности UTF8 длиной 3 и 4 байта, которые необходимы для эмодзи.

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

«create» или «update» или вызываемый объект, который возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::utf8()

uuid() public

uuid(string $field, string|null $message = null, string|callable|null $when = null): $this

Добавить правило валидации, чтобы убедиться, что поле является UUID

Параметры

string $field

Поле, к которому нужно применить правило.

string|null $message optional

Сообщение об ошибке, если правило не выполняется.

string|callable|null $when optional

«create» или «update» или вызываемый объект, который возвращает true, когда правило валидации должно быть применено.

Возвращает

$this

См. также

\Cake\Validation\Validation::uuid()

validate() public

validate(array $data, bool $newRecord = true): array[]

Проверяет и возвращает массив несоответствующих полей и сообщений об ошибках.

Параметры

array $data

Данные, которые нужно проверить на наличие ошибок

bool $newRecord optional

являются ли данные, которые нужно проверить, новыми или нужно обновить.

Возвращает

array[]

Подробное описание свойств

$_allowEmptyFlags protected

Содержит флаги, которые указывают, что пусто для каждого соответствующего поля.

Тип

array

$_allowEmptyMessages protected

Содержит сообщения валидации, связанные с проверкой пустоты для каждого соответствующего поля.

Тип

array

$_defaultProviders protected static

Ассоциативный массив объектов или классов, используемых в качестве списка поставщиков по умолчанию

Тип

array

$_fields protected

Содержит массив объектов ValidationSet

Тип

Cake\Validation\ValidationSet[]

$_presenceMessages protected

Содержит сообщения валидации, связанные с проверкой наличия для каждого соответствующего поля.

Тип

array

$_providers protected

Ассоциативный массив объектов или классов, содержащих методы, используемые для валидации

Тип

array

$_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.2/class-Cake.Validation.Validator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API