Класс ModelValidator
Объект ModelValidator объединяет все методы, связанные с проверкой данных для модели. Он также предоставляет API для динамического изменения правил проверки для каждого поля модели.
Реализует ArrayAccess для удобной модификации правил, как обычно делается с массивом определения Model::$validate.
- ModelValidator реализует ArrayAccess, IteratorAggregate, Countable
Ссылка: http://book.cakephp.org/2.0/ru/data-validation.html
Авторские права: Авторские права (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Model/ModelValidator.php
Краткое описание свойств
-
$_behaviorsprotectedХранит список имен поведений, которые были подключены при создании этого объектаarray - Хранит массив объектов CakeValidationSet
$_fieldsprotected -
$_methodsprotectedarrayХранит доступные пользовательские методы обратного вызова, обычно взятые из методов модели и методов поведения
- Содержит ссылку на модель, к которой прикреплен этот валидатор
$_modelprotected -
$_modelMethodsprotectedХранит доступные пользовательские методы обратного вызова из моделиarray -
$_validateprotectedarrayСвойство $validate валидаторов, используемое для проверки того, были ли изменены правила валидации в модели и необходимо ли их обновить в этом классе
Краткое описание методов
- __construct() publicКонструктор
- _parseRules() protected
Устанавливает объекты CakeValidationSet из свойства
Model::$validate. ЕслиModel::$validateне задано или пусто, этот метод возвращает false. В противном случае - true. - _triggerBeforeValidate() protectedРаспространяет событие beforeValidate
- _validateWithModels() protected
Выполняет проверку для ассоциаций hasAndBelongsToMany, у которых установлены ключи 'with' и данные в наборе данных.
- _validationList() protectedОбрабатывает переданный fieldList и возвращает список полей, которые необходимо проверить
- add() public
Добавляет новое правило к набору правил поля. Если второй аргумент является массивом или экземпляром CakeValidationSet, то список правил для поля будет заменен вторым аргументом, а третий аргумент будет проигнорирован.
- count() publicВозвращает количество полей, имеющих правила проверки
- errors() public
Возвращает массив полей, которые не прошли проверку. Для текущей модели. Этот метод фактически выполнит правила проверки по данным, а не просто вернёт сообщения.
- getField() public
Возвращает объект CakeValidationSet, содержащий все правила проверки для поля. Если параметры не переданы, то возвращает массив со всеми объектами CakeValidationSet для каждого поля
- getIterator() publicВозвращает итератор для каждого из полей, которые нужно проверить
- getMethods() public
Получает все возможные пользовательские методы из модели и присоединённых поведений, которые будут использоваться в качестве валидаторов
- getModel() publicПолучает модель, связанную с этим валидатором
- invalidate() public
Отмечает поле как невалидное, при желании устанавливая сообщение, объясняющее, почему правило не выполнилось
- offsetExists() publicВозвращает, определён ли набор правил для поля или нет
- offsetGet() publicВозвращает набор правил для поля
- offsetSet() publicУстанавливает набор правил для поля
- offsetUnset() publicУдаляет набор правил для поля
- remove() publicУдаляет правило из набора по его имени
- setValidationDomain() publicУстанавливает домен I18n для сообщений валидации. Этот метод цепной.
- validateAssociated() publicПроверяет один запрос, а также все его непосредственно связанные запросы.
- validateMany() publicПроверяет несколько отдельных записей для одной модели
- validates() public
Возвращает true, если все поля проходят проверку. Будет проверять ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Поскольку
Model::_saveMultiне может выйти из операции сохранения.
Подробное описание методов
__construct()source public
__construct( Model $Model )
Конструктор
Параметры
-
Model$Model - Ссылка на модель, к которой прикреплён валидатор
_parseRules()source protected
_parseRules( )
Устанавливает объекты CakeValidationSet из свойства Model::$validate. Если Model::$validate не задано или пусто, этот метод возвращает false. В противном случае - true.
Возвращаемое значение
booleantrue, если
Model::$validate был обработан, иначе false_triggerBeforeValidate()source protected
_triggerBeforeValidate( array $options array() )
Распространяет событие beforeValidate
Параметры
- массив
$optionsнеобязательно array() - Параметры для передачи в обратный вызов.
Возвращаемое значение
booleanВызываемые события
Модель.beforeValidate $model, массив($options)_validateWithModels()source protected
_validateWithModels( array $options )
Выполняет проверку для ассоциаций hasAndBelongsToMany, у которых установлены ключи 'with' и данные в наборе данных.
Параметры
- массив
$options - Массив параметров, используемых при валидации моделей с ключом 'with'
Возвращаемое значение
booleanОшибка проверки моделей с ключом 'with'
См. также
Модель::validates()_validationList()source protected
_validationList( array $fieldList array() )
Обрабатывает переданный fieldList и возвращает список полей, которые необходимо проверить
Параметры
- массив
$fieldListнеобязательно array() - список полей, используемых для проверки
Возвращаемое значение
CakeValidationSet[]Список правил валидации, которые необходимо применить
add()source public
add( string $field , string|array|CakeValidationSet $name , array|CakeValidationRule $rule null )
Добавляет новое правило в набор правил поля. Если второй аргумент является массивом или экземпляром CakeValidationSet, то список правил для поля будет заменён вторым аргументом, а третий аргумент будет проигнорирован.
Пример:
$validator
->add('title', 'required', array('rule' => 'notBlank', 'required' => true))
->add('user_id', 'valid', array('rule' => 'numeric', 'message' => 'Invalid User'))
$validator->add('password', array(
'size' => array('rule' => array('lengthBetween', 8, 20)),
'hasSpecialCharacter' => array('rule' => 'validateSpecialchar', 'message' => 'not valid')
)); Параметры
- строка
$field - Имя поля, к которому добавляется правило
- строка|массив|
CakeValidationSet$name - Имя правила для добавления или список правил для поля
- массив|
CakeValidationRule$ruleнеобязательно null - или список правил для добавления в набор правил поля
Возвращает
ModelValidatorcount()source public
count( )
Возвращает количество полей с правилами валидации
Возвращает
целое числоРеализация
Countable::count() errors()source public
errors( string $options array() )
Возвращает массив полей, которые не прошли валидацию. Для текущей модели. Этот метод фактически выполняет правила валидации на данных, а не просто возвращает сообщения.
Параметры
- строка
$optionsнеобязательно массив() - Необязательный массив с пользовательскими параметрами, которые будут доступны в обратном вызове beforeValidate
Возвращает
массивМассив недопустимых полей
Вызывает
Model.afterValidate $modelСм. также
ModelValidator::validates()getField()source public
getField( string $name null )
Возвращает объект CakeValidationSet, содержащий все правила валидации для поля. Если параметры не переданы, возвращает массив со всеми объектами CakeValidationSet для каждого поля
Параметры
- строка
$nameнеобязательно null - [необязательно] Имя поля для извлечения. По умолчанию null.
Возвращает
CakeValidationSet|массив|nullgetIterator()source public
getIterator( )
Возвращает итератор для каждого из полей, которые должны быть проверены
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() getMethods()source public
getMethods( )
Получает все возможные пользовательские методы из модели и присоединённых поведений, которые будут использоваться в качестве валидаторов
Возвращает
массивСписок вызываемых функций, которые будут использоваться в качестве методов валидации
invalidate()source public
invalidate( string $field , string $message true )
Отмечает поле как недействительное, необязательно задавая сообщение, объясняющее, почему правило не выполнилось
Параметры
- строка
$field - Имя поля для отметок как недействительного
- строка
$messageнеобязательно true - Сообщение валидации, объясняющее, почему правило не выполнилось, по умолчанию true.
offsetExists()source public
offsetExists( string $field )
Возвращает, определён ли набор правил для поля или нет
Параметры
- строка
$field - Имя поля для проверки
Возвращает
логическое значениеРеализация
ArrayAccess::offsetExists() offsetGet()source public
offsetGet( string $field )
Возвращает набор правил для поля
Параметры
- строка
$field - Имя поля для проверки
Возвращает
CakeValidationSetРеализация
ArrayAccess::offsetGet() offsetSet()source public
offsetSet( string $field , array|CakeValidationSet $rules )
Устанавливает набор правил для поля
Параметры
- строка
$field - Имя поля для установки
- массив|
CakeValidationSet$rules - набор правил, которые нужно применить к полю
Реализация
ArrayAccess::offsetSet() offsetUnset()source public
offsetUnset( string $field )
Удаляет набор правил для поля
Параметры
- строка
$field - Имя поля, которое нужно удалить
Реализация
ArrayAccess::offsetUnset() remove()source public
remove( string $field , string $rule null )
Удаляет правило из набора по его имени
Пример:
$validator
->remove('title', 'required')
->remove('user_id') Параметры
- строка
$field - Имя поля, из которого будет удалено правило
- строка
$ruleнеобязательно null - имя правила для удаления
Возвращает
ModelValidatorsetValidationDomain()source public
setValidationDomain( string $validationDomain null )
Устанавливает домен I18n для сообщений валидации. Этот метод цепляется.
Параметры
- строка
$validationDomainнеобязательно null - [необязательно] Домен валидации, который будет использоваться.
Возвращает
ModelValidatorvalidateAssociated()source public
validateAssociated( array $data , array $options array() )
Проверяет одну запись, а также все её непосредственно связанные записи.
Параметры
- atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
- fieldList: Эквивалентно параметру $fieldList в Model::save()
- deep: Если установлено в true, проверяются не только непосредственно связанные данные, но и вложенные связанные данные.
Предупреждение: Этот метод потенциально может изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей её в этот метод
Параметры
- массив
$data - $data Данные записи для проверки. Должен быть массивом, индексированным именем ассоциации.
- массив
$optionsнеобязательно массив() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращает
массив|booleanЕсли atomic: True при успехе или false при неудаче. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли проверка успешно для каждой записи.
validateMany()source public
validateMany( array $data , array $options array() )
Проверяет несколько отдельных записей для одной модели
Параметры
- atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
- fieldList: Эквивалентно параметру $fieldList в Model::save()
- deep: Если установлено в true, все связанные данные будут проверены также.
Предупреждение: Этот метод потенциально может изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей её в этот метод
Параметры
- массив
$data - $data Данные записи для проверки. Должен быть массивом с численными индексами
- массив
$optionsнеобязательно массив() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращает
смешанное значениеЕсли atomic: True при успехе или false при неудаче. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли проверка успешно для каждой записи.
validates()source public
validates( array $options array() )
Возвращает true, если все поля проходят валидацию. Будет проверять ассоциации hasAndBelongsToMany, которые используют ключ «with». Так как Model::_saveMulti не может выйти из операции сохранения.
Будет проверять текущие заданные данные. Используйте Model::set() или Model::create() для установки активных данных.
Параметры
- массив
$optionsнеобязательно array() - Необязательный массив пользовательских опций, которые будут доступны в обратном вызове перед валидацией
Возвращает
booleanTrue, если нет ошибок
Подробное описание свойств
$_behaviorssource
protected массив
Содержит список имён поведений, которые были прикреплены, когда этот объект был создан
array()
$_methodssource
protected массив
Содержит доступные пользовательские методы обратного вызова, обычно взятые из методов модели и методов поведения
array()
$_modelsource
protected Model
Содержит ссылку на модель, к которой прикреплён этот валидатор
array()
$_modelMethodssource
protected массив
Содержит доступные пользовательские методы обратного вызова из модели
array()
$_validatesource
protected массив
Свойство `$validate` валидатора, используемое для проверки, были ли изменены правила валидации в модели, и необходимо ли обновить этот класс
array()
© 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/2.8/class-ModelValidator.html