Trait ValidatorAwareTrait
Трейт, предоставляющий методы для создания и взаимодействия с валидаторами.
Этот трейт полезен при создании функций, похожих на ORM, когда реализуемый класс хочет создавать и настраивать различные экземпляры валидаторов.
Этот трейт ожидает, что классы, его использующие, определят три константы:
-
DEFAULT_VALIDATOR- Имя валидатора по умолчанию. -
VALIDATOR_PROVIDER_NAME- Имя провайдера, присвоенного реализующему классу в валидаторах. -
BUILD_VALIDATOR_EVENT- Имя события, которое должно быть вызвано при создании валидаторов.
Если реализующий класс также реализует события, то событие Model.buildValidator будет вызываться при создании валидаторов.
Краткое описание свойств
- $_validatorClass protected
stringКласс валидатора.
- $_validators protected
Cake\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', вам нужно создать метод в вашем подклассе Table следующим образом:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
}
$validator = $this->getValidator('forSubscription'); Вы можете реализовать метод в validationDefault в вашем подклассе Table, если хотите иметь набор валидации, который применяется в случаях, когда не задан никакой другой набор.
Если аргумент $name не указан, возвращается валидатор по умолчанию. Вы можете настроить имя валидатора по умолчанию в константе класса %%%CODE_BLOCK_13%%.
Параметры
-
string|null$name необязательно Имя набора валидации для возврата.
Возвращает
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
Список объектов валидации, индексированных по имени
Тип
Cake\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.2/trait-Cake.Validation.ValidatorAwareTrait.html