Класс ModelValidator
Объект ModelValidator объединяет все методы, связанные с валидацией данных для модели. Он также предоставляет API для динамического изменения правил валидации для каждого поля модели.
Реализует ArrayAccess для легкой модификации правил, как обычно делается с массивом определения Model::$validate.
- ModelValidator реализует ArrayAccess, IteratorAggregate, Countable
Авторское право: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT Лицензия
Ссылка: http://book.cakephp.org/2.0/ru/data-validation.html
Расположение: Cake/Model/ModelValidator.php
Подробное описание методов
__constructsource public
__construct( Model $Model )
Конструктор
Параметры
-
Model$Model - Ссылка на модель, к которой прикреплен валидатор
_parseRulessource protected
_parseRules( )
Устанавливает объекты CakeValidationSet из свойства Model::$validate. Если Model::$validate не задано или пусто, этот метод возвращает false. Иначе - true.
Возвращает
booleantrue, если
Model::$validate был обработан, иначе false_triggerBeforeValidatesource protected
_triggerBeforeValidate( array $options array() )
Распространяет событие beforeValidate.
Параметры
- массив
$optionsнеобязательно массив() - Опции для передачи в обратный вызов.
Возвращает
booleanbool
Вызывает
Model.beforeValidate $model, массив($options)_validateWithModelssource protected
_validateWithModels( array $options )
Выполняет валидацию для ассоциаций hasAndBelongsToMany, у которых установлены ключи 'with' и данные в наборе данных.
Параметры
- массив
$options - Массив опций для использования при валидации моделей с ключом 'with'.
Возвращает
booleanРезультат валидации моделей с ключом 'with'.
См. также
Model::validates()_validationListsource protected
_validationList( array $fieldList array() )
Обрабатывает переданный fieldList и возвращает список полей, которые будут проверены.
Параметры
- массив
$fieldListнеобязательно массив() - список полей, используемых для валидации.
Возвращает
CakeValidationSet[]Список правил валидации, которые будут применены
addsource 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 - или список правил для добавления к набору правил поля
Возвращает
selfself
countsource public
count( )
Возвращает количество полей, имеющих правила валидации.
Возвращает
integerint
Реализация
Countable::count() errorssource public
errors( string $options array() )
Возвращает массив полей, которые не прошли валидацию. Для текущей модели. Этот метод фактически выполнит правила валидации над данными, а не просто вернет сообщения.
Параметры
- строка
$optionsнеобязательно массив() - Необязательный массив пользовательских опций, которые будут доступны в обратном вызове beforeValidate.
Возвращает
arrayМассив невалидных полей
См. также
ModelValidator::validates()Вызывает
Model.afterValidate $modelgetFieldsource public
getField( string $name null )
Возвращает объект CakeValidationSet, содержащий все правила валидации для поля. Если параметры не переданы, возвращает массив со всеми объектами CakeValidationSet для каждого поля.
Параметры
- строка
$nameнеобязательно null - [необязательно] Имя поля для извлечения. По умолчанию null.
Возвращает
CakeValidationSet|array|nullCakeValidationSet|массив|null
getIteratorsource public
getIterator( )
Возвращает итератор для каждого поля, которое будет валидироваться.
Возвращает
ArrayIteratorArrayIterator
Реализация
IteratorAggregate::getIterator() getMethodssource public
getMethods( )
Получает все возможные пользовательские методы из модели и присоединённых поведений, которые будут использоваться в качестве валидаторов.
Возвращает
arrayСписок вызываемых функций, которые будут использоваться в качестве методов валидации
getModelsource public
getModel( )
Получает модель, связанную с этим валидатором.
Возвращает
ModelМодель
invalidatesource public
invalidate( string $field , string $message true )
Помечает поле как невалидное, необязательно задавая сообщение, объясняющее, почему правило не выполнилось.
Параметры
- строка
$field - Имя поля, которое нужно сделать невалидным.
- строка
$messageнеобязательно true - Сообщение валидации, объясняющее, почему правило не выполнилось. По умолчанию true.
offsetExistssource public
offsetExists( string $field )
Возвращает, определен ли набор правил для поля или нет.
Параметры
- строка
$field - имя поля для проверки
Возвращает
booleanbool
Реализация
ArrayAccess::offsetExists() offsetGetsource public
offsetGet( string $field )
Возвращает набор правил для поля.
Параметры
- строка
$field - имя поля для проверки
Возвращает
CakeValidationSetCakeValidationSet
Реализация
ArrayAccess::offsetGet() offsetSetsource public
offsetSet( string $field , array|CakeValidationSet $rules )
Устанавливает набор правил для поля.
Параметры
- строка
$field - имя поля, которое нужно установить
- массив|
CakeValidationSet$rules - набор правил, которые нужно применить к полю
Реализация
ArrayAccess::offsetSet() offsetUnsetsource public
offsetUnset( string $field )
Удаляет набор правил для поля
Параметры
- строка
$field - имя поля для удаления
Реализация
ArrayAccess::offsetUnset() removesource public
remove( string $field , string $rule null )
Удаляет правило из набора по его имени
Пример:
$validator ->remove('title', 'required') ->remove('user_id')
Параметры
- строка
$field - Имя поля, из которого будет удалено правило
- строка
$ruleнеобязательно null - имя правила для удаления
Возвращает
selfself
setValidationDomainsource public
setValidationDomain( string $validationDomain null )
Устанавливает I18n домен для сообщений об ошибках валидации. Этот метод можно использовать в цепочке вызовов.
Параметры
- строка
$validationDomainнеобязательно null - [необязательно] Домен валидации для использования.
Возвращает
selfself
validateAssociatedsource public
validateAssociated( array $data , array $options array() )
Валидирует одну запись, а также все её непосредственно связанные записи.
Параметры
- atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
- fieldList: Эквивалентно параметру $fieldList в Model::save()
- deep: Если установлено в true, валидируются не только непосредственно связанные данные, но и вложенные связанные данные.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод
Параметры
- массив
$data - $data Данные записи для валидации. Это должен быть массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно массив() - Параметры для использования при валидации данных записи (см. выше), см. также $options метода validates().
Возвращает
array|booleanЕсли atomic: True при успешной валидации, или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли валидация каждой записи успешно.
validateManysource public
validateMany( array $data , array $options array() )
Валидирует несколько отдельных записей для одной модели.
Параметры
- atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
- fieldList: Эквивалентно параметру $fieldList в Model::save()
- deep: Если установлено в true, все связанные данные также будут проверены.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод
Параметры
- массив
$data - $data Данные записи для валидации. Это должен быть массив с числовыми индексами.
- массив
$optionsнеобязательно массив() - Параметры для использования при валидации данных записи (см. выше), см. также $options метода validates().
Возвращает
mixedЕсли atomic: True при успешной валидации, или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли валидация каждой записи успешно.
validatessource public
validates( array $options array() )
Возвращает true, если все поля проходят валидацию. Будет валидировать ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Поскольку Model::_saveMulti не может завершить операцию сохранения.
Будет валидировать текущие данные. Используйте Model::set() или Model::create() для установки активных данных.
Параметры
- массив
$optionsнеобязательно массив() - Необязательный массив пользовательских параметров, которые будут доступны в обратном вызове beforeValidate
Возвращает
booleanTrue, если нет ошибок
Краткое описание свойств
© 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.7/class-ModelValidator.html