Spec-Zone.ru › CakePHP 3.2

Трейт ValidatorAwareTrait

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

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

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

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

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

Прямые пользователи

  • Cake\ORM\Table
Пространство имён: Cake\Validation
Расположение: Validation/ValidatorAwareTrait.php

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

  • $_validatorClass protected
    string
    Класс валидатора.
  • $_validators protected
    array
    Список объектов валидации, индексированных по имени.

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

  • validationDefault() public

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

  • validator() public

    Возвращает правила валидации, помеченные тегом $name. Возможно наличие нескольких различных наборов правил валидации с именами, что полезно, когда необходимо использовать различные правила при сохранении данных из различных процедур в вашей системе.

Подробное описание методов

validationDefault()source public

validationDefault( Cake\Validation\Validator $validator )

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

Параметры

Cake\Validation\Validator $validator

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

Возвращает

Cake\Validation\Validator

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

Подробное описание свойств

$_validatorClasssource

protected строка

Класс валидатора.

'\Cake\Validation\Validator'

$_validatorssource

protected массив

Список объектов валидации, индексированных по имени

[]

© 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

Spec-Zone.ru

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