Класс ValidatorAwareTrait
Трейт, предоставляющий методы для создания и взаимодействия с валидаторами.
Этот трейт полезен при создании функций типа ORM, когда реализующий класс хочет создавать и настраивать различные экземпляры валидаторов.
Этот трейт ожидает, что классы, включающие его, определят три константы:
-
DEFAULT_VALIDATOR- Имя валидатора по умолчанию. -
VALIDATOR_PROVIDER_NAME- Имя провайдера, присвоенного включающему классу в валидаторах. -
BUILD_VALIDATOR_EVENT- Имя события, которое должно быть активировано при создании валидаторов.
Если включающий класс также реализует события, то событие Model.buildValidator будет активировано при создании валидаторов.
Краткое описание свойств
- $_validatorClass protected
stringКласс валидатора.
- $_validators protected
arrayCake\Validation\Validator>Список объектов валидации, индексированных по имени
Краткое описание методов
-
createValidator() protected
Создаёт валидатор с помощью пользовательского метода внутри вашего класса.
-
getValidator() public
Возвращает правила валидации, помеченные тегом $name. Возможны несколько наборов валидации с разными именами, что полезно, когда вам нужно использовать различные правила при сохранении из разных процедур в вашей системе.
-
hasValidator() public
Проверяет, установлен ли валидатор.
-
setValidator() public
Этот метод сохраняет пользовательский валидатор под заданным именем.
-
validationDefault() public
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор валидации по умолчанию в объект валидатора.
-
validationMethodExists() protected
Проверяет наличие метода валидации.
Подробное описание методов
createValidator() protected
createValidator(string $name): Cake\Validation\Validator
Создаёт валидатор с помощью пользовательского метода внутри вашего класса.
Этот метод используется только для создания нового валидатора и не сохраняет его в вашем объекте. Если вы хотите создавать и повторно использовать валидаторы, используйте вместо этого метод getValidator().
Параметры
-
string$name Имя набора валидации для создания.
Возвращает
Cake\Validation\ValidatorВыбрасывает
RuntimeExceptiongetValidator() public
getValidator(string|null $name = null): Cake\Validation\Validator
Возвращает правила валидации, помеченные тегом $name. Возможны несколько наборов валидации с разными именами, что полезно, когда вам нужно использовать различные правила при сохранении из разных процедур в вашей системе.
Если валидатор ранее не был установлен, этот метод создаст валидатор с помощью метода внутри вашего класса.
Например, если вы хотите создать набор валидации с именем 'forSubscription', вам необходимо создать метод в подклассе вашей Таблицы следующим образом:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
}
$validator = $this->getValidator('forSubscription'); Вы можете реализовать метод в validationDefault в вашем подклассе Таблицы, если хотите иметь набор валидации, который применяется в случаях, когда не указан другой набор.
Если аргумент $name не предоставлен, будет возвращён валидатор по умолчанию. Вы можете настроить имя валидатора по умолчанию в константе класса DEFAULT_VALIDATOR.
Параметры
-
string|null$name optional Имя набора валидации для возврата.
Возвращает
Cake\Validation\ValidatorhasValidator() public
hasValidator(string $name): bool
Проверяет, установлен ли валидатор.
Параметры
-
string$name Имя валидатора.
Возвращает
boolsetValidator() public
setValidator(string $name, Cake\Validation\Validator $validator): $this
Этот метод сохраняет пользовательский валидатор под заданным именем.
Вы можете создать объект самостоятельно и сохранить его в своём объекте:
$validator = new \Cake\Validation\Validator();
$validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->allowEmpty('bio');
$this->setValidator('forSubscription', $validator); Параметры
-
string$name Имя валидатора, который нужно установить.
-
Cake\Validation\Validator$validator Объект валидатора, который нужно установить.
Возвращает
$thisvalidationDefault() public
validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор валидации по умолчанию в объект валидатора.
Параметры
-
Cake\Validation\Validator$validator Валидатор, который можно изменить, чтобы добавить к нему некоторые правила.
Возвращает
Cake\Validation\ValidatorvalidationMethodExists() protected
validationMethodExists(string $name): bool
Проверяет наличие метода валидации.
Параметры
-
string$name Имя метода валидации.
Возвращает
boolПодробное описание свойств
$_validatorClass protected
Класс валидатора.
Тип
string$_validators protected
Список объектов валидации, индексированных по имени
Тип
arrayCake\Validation\Validator>
© 2005–present 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.
https://api.cakephp.org/4.3/trait-Cake.Validation.ValidatorAwareTrait.html