Spec-Zone.ru › CakePHP 4.2

Trait ValidatorAwareTrait

Трейт, предоставляющий методы для создания и взаимодействия с валидаторами.

Этот трейт полезен при создании функций, похожих на ORM, когда реализуемый класс хочет создавать и настраивать различные экземпляры валидаторов.

Этот трейт ожидает, что классы, его использующие, определят три константы:

  • DEFAULT_VALIDATOR - Имя валидатора по умолчанию.
  • VALIDATOR_PROVIDER_NAME - Имя провайдера, присвоенного реализующему классу в валидаторах.
  • BUILD_VALIDATOR_EVENT - Имя события, которое должно быть вызвано при создании валидаторов.

Если реализующий класс также реализует события, то событие Model.buildValidator будет вызываться при создании валидаторов.

Пространство имен: Cake\Validation

Краткое описание свойств

  • $_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

Выбрасывает

RuntimeException

getValidator() 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\Validator

hasValidator() public

hasValidator(string $name): bool

Проверяет, установлен ли валидатор.

Параметры

string $name

Имя валидатора.

Возвращает

bool

setValidator() 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

Объект валидатора для установки.

Возвращает

$this

validationDefault() public

validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator

Возвращает объект валидатора по умолчанию. Подклассы могут переопределять эту функцию, чтобы добавить набор валидации по умолчанию к объекту валидатора.

Параметры

Cake\Validation\Validator $validator

Валидатор, который можно изменить, чтобы добавить к нему некоторые правила.

Возвращает

Cake\Validation\Validator

validationMethodExists() 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API