Класс Validator
Объект Validator инкапсулирует все методы, связанные с валидацией данных для модели. Он также предоставляет API для динамического изменения правил валидации для каждого поля модели.
Реализует ArrayAccess для удобной модификации правил в наборе
- Cake\Validation\Validator реализует ArrayAccess, IteratorAggregate, Countable
Ссылка: http://book.cakephp.org/3.0/ru/core-libraries/validation.html
Расположено в Validation/Validator.php
Подробное описание методов
__debugInfosource public
__debugInfo( )
Получить печатную версию этого объекта.
Возвращает
arrayмассив
_canBeEmptysource protected
_canBeEmpty( Cake\Validation\ValidationSet $field , array $context )
Возвращает, может ли поле быть пустым в соответствии с allowEmpty
Параметры
-
Cake\Validation\ValidationSet$field - набор правил для поля
- массив
$context - список значений, содержащих контекст валидации.
Возвращает
booleanбулево значение
_checkPresencesource protected
_checkPresence( Cake\Validation\ValidationSet $field , array $context )
Возвращает false, если любая валидация для переданного набора правил должна быть остановлена из-за отсутствия поля в массиве данных
Параметры
-
Cake\Validation\ValidationSet$field - Набор правил для поля.
- массив
$context - Список значений, содержащих контекст валидации.
Возвращает
booleanбулево значение
_fieldIsEmptysource protected
_fieldIsEmpty( mixed $data )
Возвращает true, если поле пусто в переданном массиве данных
Параметры
- смешанное
$data - значение для проверки
Возвращает
booleanбулево значение
_processRulessource protected
_processRules( string $field , Cake\Validation\ValidationSet $rules , array $data , boolean $newRecord )
Итерируется по каждому правилу в наборе валидации и собирает ошибки, полученные в результате их выполнения
Параметры
- строка
$field - Имя поля, которое обрабатывается
-
Cake\Validation\ValidationSet$rules - список правил для поля
- массив
$data - полные данные, переданные валидатору
- булево значение
$newRecord - является ли запись новой или существующей
Возвращает
arrayмассив
addsource public
add( string $field , array|string $name , array|Cake\Validation\ValidationRule $rule [] )
Добавляет новое правило в набор правил поля. Если второй аргумент является массивом, список правил для поля будет заменён вторым аргументом, и третий аргумент будет проигнорирован.
Пример:
$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'] ]);
Параметры
- строка
$field - Имя поля, из которого будет удалено правило
- массив|строка
$name - Псевдоним для одного правила или массива правил
- массив|
Cake\Validation\ValidationRule$ruleнеобязательно [] - правило для добавления
Возвращает
mixed$this
addNestedsource public
addNested( string $field , Cake\Validation\Validator $validator )
Добавляет вложенный валидатор.
Вложенные валидаторы позволяют определять валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят для валидации поддокумента или сложного типа массива.
Этот метод предполагает, что поддокумент имеет 1:1 отношение с родительским объектом.
Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные в родительском объекте, будут иметь те же значения во вложенном валидаторе при оценке правил.
Параметры
- строка
$field - Корневое поле для вложенного валидатора.
-
Cake\Validation\Validator$validator - Вложенный валидатор.
Возвращает
mixed$this
addNestedManysource public
addNestedMany( string $field , Cake\Validation\Validator $validator )
Добавляет вложенный валидатор.
Вложенные валидаторы позволяют определять валидаторы для типов массивов. Например, вложенные валидаторы идеально подходят для валидации многих похожих поддокументов или сложных типов массивов.
Этот метод предполагает, что поддокумент имеет 1:N отношение с родительским объектом.
Поставщики родительского валидатора будут синхронизированы с вложенным валидатором при проверке ошибок. Это гарантирует, что все поставщики правил валидации, подключенные в родительском объекте, будут иметь те же значения во вложенном валидаторе при оценке правил.
Параметры
- строка
$field - Корневое поле для вложенного валидатора.
-
Cake\Validation\Validator$validator - Вложенный валидатор.
Возвращает
mixed$this
allowEmptysource public
allowEmpty( string $field , boolean|string|callable $when true )
Разрешает поле быть пустым.
Это противоположно notEmpty(), которое требует, чтобы поле не было пустым. Используя $mode, равный 'create' или 'update', вы можете разрешить поля быть пустыми при первом создании записей или при их обновлении.
Пример:
$validator->allowEmpty('email'); // Email can be empty $validator->allowEmpty('email', 'create'); // Email can be empty on create $validator->allowEmpty('email', 'update'); // Email can be empty on update
Можно условно разрешить пустоту поля, передав обратный вызов в качестве второго аргумента. Обратный вызов получит массив контекста валидации в качестве аргумента:
$validator->allowEmpty('email', function ($context) { return !$context['newRecord'] || $context['data']['role'] === 'admin'; });
Этот метод правильно обнаруживает пустые загрузки файлов и поля date/time/datetime.
Поскольку этот и notEmpty() изменяют одно и то же внутреннее состояние, последний вызванный метод будет иметь приоритет.
Параметры
- строка
$field - имя поля
- булево значение|строка|обратный вызов
$whenнеобязательно true - Указывает, когда поле может быть пустым. Допустимые значения: true (всегда), 'create', 'update'. Если передан обратный вызов, то поле будет пустым только если обратный вызов вернет true.
Возвращает
mixed$this
countsource public
count( )
Возвращает количество полей с правилами валидации
Возвращает
integerцелое число
Реализация
Countable::count() errorssource public
errors( array $data , boolean $newRecord true )
Возвращает массив полей, которые не прошли валидацию. Для текущей модели. Этот метод фактически выполнит правила валидации над данными, а не просто вернёт сообщения.
Параметры
- массив
$data - Данные для проверки ошибок
- булево значение
$newRecordнеобязательно true - являются ли данные для валидации новыми или обновляемыми.
Возвращает
arrayМассив недопустимых полей
fieldsource public
field( string $name , Cake\Validation\ValidationSet $set null )
Возвращает объект ValidationSet, содержащий все правила валидации для поля. Если в качестве второго аргумента передан ValidationSet, он заменит любой другой определённый ранее набор правил
Параметры
- строка
$name - [необязательно] Имя поля для извлечения.
-
Cake\Validation\ValidationSet$setнеобязательно null - Набор правил для поля
Возвращает
Cake\Validation\ValidationSet\Cake\Validation\ValidationSet
getIteratorsource public
getIterator( )
Возвращает итератор для каждого поля, подлежащего валидации
Возвращает
ArrayIterator\ArrayIterator
Реализация
IteratorAggregate::getIterator() hasFieldsource public
hasField( string $name )
Проверяет, содержит ли валидатор правила для данного поля.
Параметры
- string
$name - Имя поля для проверки.
Возвращает
booleanbool
isEmptyAllowedsource public
isEmptyAllowed( string $field , boolean $newRecord )
Возвращает, разрешено ли оставлять поле пустым для нового или уже существующего записей.
Параметры
- string
$field - Имя поля.
- boolean
$newRecord - является ли данные для проверки новыми или подлежащими обновлению.
Возвращает
booleanbool
isPresenceRequiredsource public
isPresenceRequired( string $field , boolean $newRecord )
Возвращает, обязательно ли присутствие поля для новой или уже существующей записи.
Параметры
- string
$field - Имя поля.
- boolean
$newRecord - Являются ли данные для проверки новыми или подлежащими обновлению.
Возвращает
booleanbool
notEmptysource public
notEmpty( string $field , string $message null , boolean|string|callable $when false )
Устанавливает требование для поля иметь непустое значение.
Это противоположность allowEmpty(), которое разрешает пустое поле. Используя $mode, равный 'create' или 'update', можно сделать поля обязательными при первом создании записей или при их обновлении.
Пример:
$message = 'This field cannot be empty'; $validator->notEmpty('email'); // Email cannot be empty $validator->notEmpty('email', $message, 'create'); // Email can be empty on update $validator->notEmpty('email', $message, 'update'); // Email can be empty on create
Можно условно запретить пустоту в поле, передав обратный вызов в качестве третьего аргумента. Обратный вызов получит массив контекста валидации в качестве аргумента:
$validator->notEmpty('email', 'Email is required', function ($context) { return $context['newRecord'] && $context['data']['role'] !== 'admin'; });
Поскольку этот и allowEmpty() изменяют одно и то же внутреннее состояние, последний вызванный метод будет иметь приоритет.
Параметры
- string
$field - имя поля
- string
$messageнеобязательно null - Сообщение для отображения, если поле не
- boolean|string|callable
$whenнеобязательно false - Указывает, когда поле не должно быть пустым. Допустимые значения: true (всегда), 'create', 'update'. Если передается обратный вызов, поле будет разрешено быть пустым только в том случае, если обратный вызов возвращает false.
Возвращает
mixed$this
offsetExistssource public
offsetExists( string $field )
Возвращает, определен ли набор правил для поля.
Параметры
- string
$field - имя поля для проверки
Возвращает
booleanbool
Реализация
ArrayAccess::offsetExists() offsetGetsource public
offsetGet( string $field )
Возвращает набор правил для поля.
Параметры
- string
$field - имя поля для проверки
Возвращает
Cake\Validation\ValidationSet\Cake\Validation\ValidationSet
Реализация
ArrayAccess::offsetGet() offsetSetsource public
offsetSet( string $field , array|Cake\Validation\ValidationSet $rules )
Устанавливает набор правил для поля.
Параметры
- string
$field - имя поля для установки
- array|
Cake\Validation\ValidationSet$rules - набор правил для применения к полю
Реализация
ArrayAccess::offsetSet() offsetUnsetsource public
offsetUnset( string $field )
Удаляет набор правил для поля.
Параметры
- string
$field - имя поля для удаления
Реализация
ArrayAccess::offsetUnset() providersource public
provider( string $name , null|object|string $object null )
Связывает объект с именем, чтобы его можно было использовать как поставщик. Поставщики — это объекты или имена классов, которые могут содержать методы, используемые во время валидации, для определения, может ли быть применено правило валидации. Все методы валидации при вызове получат полный список поставщиков, хранящихся в этом валидаторе.
Если вызов без аргументов, он вернет поставщика, сохраненного под этим именем, если он существует; в противном случае вернет текущий экземпляр для цепочки.
Параметры
- string
$name - Имя, под которым должен быть установлен поставщик.
- null|object|string
$objectнеобязательно null - Объект поставщика или имя класса.
Возвращает
mixed$this|object|string|null
providerssource public
providers( )
Получить список поставщиков в этом валидаторе.
Возвращает
arrayarray
removesource public
remove( string $field , string|null $rule null )
Удаляет правило из набора по его имени
Пример:
$validator ->remove('title', 'required') ->remove('user_id')
Параметры
- string
$field - Имя поля, из которого будет удалено правило
- string|null
$ruleнеобязательно null - имя правила для удаления
Возвращает
mixed$this
requirePresencesource public
requirePresence( string $field , boolean|string|callable $mode true , string|null $message null )
Устанавливает, обязательно ли присутствие поля в массиве данных.
Параметры
- string
$field - имя поля
- boolean|string|callable
$modeнеобязательно true - Допустимые значения: true, false, 'create', 'update'. Если передается обратный вызов, поле будет обязательным только когда обратный вызов возвращает true.
- string|null
$messageнеобязательно null - Сообщение для отображения, если валидация присутствия поля завершается неудачно.
Возвращает
mixed$this
Краткое описание констант
string | NESTED Используется для флагования вложенных правил, созданных с помощью addNested() и addNestedMany() | '_nested' |
Краткое описание свойств
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Validation.Validator.html