Трейт ValidatorAwareTrait
Трейт, предоставляющий методы для создания и взаимодействия с валидаторами.
Этот трейт полезен при создании функций типа ORM, где реализующий класс хочет создавать и настраивать различные экземпляры валидаторов.
Этот трейт предполагает, что классы, его включающие, определяют две константы:
-
DEFAULT_VALIDATOR- Имя валидатора по умолчанию. -
VALIDATOR_PROVIDER_NAME- Имя провайдера, присвоенное включающему классу в валидаторах.
Если включающий класс также реализует события, событие Model.buildValidator будет срабатывать при создании валидаторов.
Прямые пользователи
Краткое описание свойств
-
$_validatorClassprotectedКласс валидатора.string -
$_validatorsprotectedСписок объектов валидации, индексированных по имени.array
Краткое описание методов
- validationDefault() public
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор правил валидации по умолчанию в объект валидатора.
- validator() public
Возвращает правила валидации, помеченные тегом $name. Возможно наличие нескольких различных наборов правил валидации с именами, что полезно, когда необходимо использовать различные правила при сохранении данных из различных процедур в вашей системе.
Подробное описание методов
validationDefault()source public
validationDefault( Cake\Validation\Validator $validator )
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор правил валидации по умолчанию в объект валидатора.
Параметры
-
Cake\Validation\Validator$validator Валидатор, который можно изменить, чтобы добавить в него некоторые правила.
Возвращает
Cake\Validation\Validatorvalidator()source public
validator( string|null $name null , Cake\Validation\Validator $validator null )
Возвращает правила валидации, помеченные тегом $name. Возможно наличие нескольких различных наборов правил валидации с именами, что полезно, когда необходимо использовать различные правила при сохранении данных из различных процедур в вашей системе.
Существует два способа создания и именования наборов правил валидации: создавая новый метод внутри вашего собственного подкласса таблицы или самостоятельно создавая объект валидатора и сохраняя его с помощью этого метода.
Например, если вы хотите создать набор правил валидации под названием 'forSubscription', вам нужно создать метод в вашем подклассе таблицы следующим образом:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
} В противном случае, вы можете создать объект самостоятельно и сохранить его в объекте таблицы:
$validator = new \Cake\Validation\Validator($table);
$validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->allowEmpty('bio');
$table->validator('forSubscription', $validator); Вы можете реализовать метод в validationDefault в вашем подклассе таблицы, если хотите иметь набор правил валидации, который применяется в случаях, когда другой набор не указан.
Параметры
- string|null
$nameнеобязательно null - имя набора правил валидации, который нужно вернуть
-
Cake\Validation\Validator$validatorнеобязательно null Экземпляр валидатора для сохранения, используйте null для получения валидатора.
Возвращает
Cake\Validation\ValidatorИсключения
RuntimeExceptionПодробное описание свойств
© 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.2/class-Cake.Validation.ValidatorAwareTrait.html