Класс yii\validators\ExistValidator
| Наследование | yii\validators\ExistValidator » yii\validators\Validator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/validators/ExistValidator.php |
ExistValidator проверяет, что значение атрибута существует в таблице.
ExistValidator проверяет, можно ли найти значение, которое валидируется, в столбце таблицы, указанном классом ActiveRecord $targetClass и атрибутом $targetAttribute.
Этот валидатор часто используется для проверки того, что внешний ключ содержит значение, которое можно найти во внешней таблице.
Ниже приведены примеры правил валидации, использующих этот валидатор:
// a1 needs to exist ['a1', 'exist'] // a1 needs to exist, but its value will use a2 to check for the existence ['a1', 'exist', 'targetAttribute' => 'a2'] // a1 and a2 need to exist together, and they both will receive error message [['a1', 'a2'], 'exist', 'targetAttribute' => ['a1', 'a2']] // a1 and a2 need to exist together, only a1 will receive error message ['a1', 'exist', 'targetAttribute' => ['a1', 'a2']] // a1 needs to exist by checking the existence of both a2 and a3 (using a1 value) ['a1', 'exist', 'targetAttribute' => ['a2', 'a1' => 'a3']]
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $allowArray | boolean | Разрешить атрибут типа массив. | yii\validators\ExistValidator |
| $attributeNames | array | Имена атрибутов. | yii\validators\Validator |
| $attributes | array|string | Атрибуты, которые должны быть валидированы этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $builtInValidators | array | Список встроенных валидаторов (имя => класс или конфигурация) | yii\validators\Validator |
| $enableClientValidation | boolean | Включить валидацию на стороне клиента для этого валидатора. | yii\validators\Validator |
| $except | array|string | Сценарии, для которых валидатор не должен применяться. | yii\validators\Validator |
| $filter | string|array|Closure | Дополнительный фильтр, применяемый к запросу DB для проверки существования значения атрибута. | yii\validators\ExistValidator |
| $isEmpty | callable | PHP вызываемая функция, которая заменяет стандартную реализацию isEmpty(). | yii\validators\Validator |
| $message | string | Пользовательское сообщение об ошибке. | yii\validators\Validator |
| $on | array|string | Сценарии, для которых валидатор может быть применён. | yii\validators\Validator |
| $skipOnEmpty | boolean | Пропустить валидацию, если значение атрибута null или пустая строка. | yii\validators\Validator |
| $skipOnError | boolean | Пропустить валидацию, если у валидируемого атрибута уже есть ошибка валидации по предыдущим правилам. | yii\validators\Validator |
| $targetAttribute | string|array | Имя атрибута ActiveRecord, которое должно использоваться для проверки существования текущего значения атрибута. | yii\validators\ExistValidator |
| $targetAttributeJunction | string | ИЛИ|И определяет, как связаны атрибуты целевой таблицы | yii\validators\ExistValidator |
| $targetClass | string | Имя класса ActiveRecord, которое должно использоваться для проверки существования текущего значения атрибута. | yii\validators\ExistValidator |
| $when | callable | PHP вызываемая функция, значение которой определяет, должен ли применяться этот валидатор. | yii\validators\Validator |
| $whenClient | string | Имя JavaScript-функции, возвращаемое значение которой определяет, должен ли этот валидатор применяться на стороне клиента. | yii\validators\Validator |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с заданным именем, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| addError() | Добавляет ошибку о заданном атрибуте в объект модели. | yii\validators\Validator |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, которые должен иметь данный компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| clientValidateAttribute() | Возвращает JavaScript, необходимый для выполнения проверки на стороне клиента. | yii\validators\Validator |
| createValidator() | Создаёт объект валидатора. | yii\validators\Validator |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getAttributeNames() | Возвращает очищенные имена атрибутов без символа ! в начале | yii\validators\Validator |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getClientOptions() | Возвращает параметры проверки на стороне клиента. | yii\validators\Validator |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединённый к заданному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\validators\ExistValidator |
| isActive() | Возвращает значение, указывающее, активен ли валидатор для данного сценария и атрибута. | yii\validators\Validator |
| isEmpty() | Проверяет, пустое ли заданное значение. | yii\validators\Validator |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| trigger() | Вызывает событие. | yii\base\Component |
| validate() | Проверяет заданное значение. | yii\validators\Validator |
| validateAttribute() | Проверяет отдельный атрибут. | yii\validators\ExistValidator |
| validateAttributes() | Проверяет указанный объект. | yii\validators\Validator |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createQuery() | Создаёт экземпляр запроса с заданным условием. | yii\validators\ExistValidator |
| formatMessage() | Форматирует сообщение с использованием I18N или простым strtr, если \Yii::$app недоступен. | yii\validators\Validator |
| validateValue() | Проверяет значение. | yii\validators\ExistValidator |
Подробное описание свойств
$allowArray публичное свойство
Разрешить атрибут типа массив.
public boolean $allowArray = false
$filter публичное свойство
Дополнительный фильтр, который будет применяться к запросу базы данных, используемому для проверки существования значения атрибута. Это может быть строка или массив, представляющий дополнительное условие запроса (см. yii\db\Query::where() для формата условия запроса), или анонимная функция со сигнатурой function ($query), где $query — объект Query, который можно изменить в функции.
public string|array|Closure $filter = null
$targetAttribute публичное свойство
Имя атрибута ActiveRecord, которое должно использоваться для проверки существования текущего значения атрибута. Если не задано, будет использовано имя текущего проверяемого атрибута. Вы можете использовать массив для одновременной проверки существования нескольких столбцов. Ключ массива — имя атрибута со значением для проверки, значение массива — имя поля базы данных для поиска.
public string|array $targetAttribute = null
$targetAttributeJunction публичное свойство (доступно с версии 2.0.11)
И/или определить, как связаны целевые атрибуты
public string $targetAttributeJunction = 'and'
$targetClass публичное свойство
Имя класса ActiveRecord, которое должно использоваться для проверки существования текущего значения атрибута. Если не задано, будет использован класс ActiveRecord атрибута, который проверяется.
См. также $targetAttribute.
public string $targetClass = null
Подробное описание методов
createQuery() защищённый метод
Создаёт экземпляр запроса с заданным условием.
| защищённый yii\db\ActiveQueryInterface createQuery ( $targetClass, $condition ) | ||
|---|---|---|
| $targetClass | строка |
Класс целевого AR |
| $condition | смешанный тип |
Условие запроса |
| возвращает | yii\db\ActiveQueryInterface |
Экземпляр запроса |
init() публичный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| публичный void init ( ) |
|---|
validateAttribute() публичный метод
Проверяет одно атрибут.
Дочерние классы должны реализовать этот метод, чтобы предоставить фактическую логику проверки.
| публичный void validateAttribute ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных для проверки |
| $attribute | строка |
Имя атрибута для проверки. |
validateValue() защищённый метод
Проверяет значение.
Класс валидатора может реализовать этот метод для поддержки проверки данных вне контекста модели данных.
| защищённый массив|null validateValue ( $value ) | ||
|---|---|---|
| $value | смешанный тип |
Значение данных для проверки. |
| возвращает | массив|null |
Сообщение об ошибке и параметры для вставки в сообщение об ошибке. Null должен возвращаться, если данные валидны. |
| выбрасывает | yii\base\NotSupportedException |
если валидатор не поддерживает проверку данных без модели |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-validators-existvalidator.html