Трейт ValidatorAwareTrait
Трейт, предоставляющий методы для создания и взаимодействия с валидаторами.
Этот трейт полезен при создании функций типа ORM, где реализующий класс хочет создать и настроить различные экземпляры валидаторов.
Этот трейт ожидает, что классы, включающие его, определят две константы:
-
DEFAULT_VALIDATOR- Имя валидатора по умолчанию. - `VALIDATOR_PROVIDER_NAME ` - Имя провайдера, присваиваемого включающему классу в валидаторах.
Если включающий класс также реализует события, то Model.buildValidator событие будет срабатывать при создании валидаторов.
Прямые известные пользователи
Cake\ORM\TableПодробное описание методов
validationDefaultsource public
validationDefault( Cake\Validation\Validator $validator )
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор правил валидации по умолчанию в объект валидатора.
Параметры
-
Cake\Validation\Validator$validator - Валидатор, который можно изменить, чтобы добавить к нему некоторые правила.
Возвращает
Cake\Validation\Validator\Cake\Validation\Validator
validatorsource public
validator( string $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 в подклассе вашей таблицы, если вы хотите иметь набор правил валидации, который применяется в тех случаях, когда не указан никакой другой набор.
Параметры
- строка
$nameнеобязательно null - имя набора правил валидации для возврата
-
Cake\Validation\Validator$validatorнеобязательно null - Экземпляр валидатора для сохранения, использовать null для получения валидатора.
Возвращает
Cake\Validation\Validator\Cake\Validation\Validator
Краткое описание свойств
© 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.ValidatorAwareTrait.html