Класс yii\validators\UniqueValidator
| Наследование | yii\validators\UniqueValidator » yii\validators\Validator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/validators/UniqueValidator.php |
UniqueValidator проверяет, что значение атрибута уникально в указанной таблице базы данных.
UniqueValidator проверяет, является ли проверяемое значение уникальным в столбце таблицы, указанном классом ActiveRecord $targetClass и атрибутом $targetAttribute.
Ниже приведены примеры правил валидации, использующих этот валидатор:
// a1 needs to be unique ['a1', 'unique'] // a1 needs to be unique, but column a2 will be used to check the uniqueness of the a1 value ['a1', 'unique', 'targetAttribute' => 'a2'] // a1 and a2 need to be unique together, and they both will receive error message [['a1', 'a2'], 'unique', 'targetAttribute' => ['a1', 'a2']] // a1 and a2 need to be unique together, only a1 will receive error message ['a1', 'unique', 'targetAttribute' => ['a1', 'a2']] // a1 needs to be unique by checking the uniqueness of both a2 and a3 (using a1 value) ['a1', 'unique', 'targetAttribute' => ['a2', 'a1' => 'a3']]
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attributeNames | массив | Имена атрибутов. | yii\validators\Validator |
| $attributes | массив|строка | Атрибуты, которые должны быть валидированы этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $builtInValidators | массив | Список встроенных валидаторов (имя => класс или конфигурация) | yii\validators\Validator |
| $comboNotUnique | строка | yii\validators\UniqueValidator | |
| $enableClientValidation | логическое значение | Включить ли клиентскую валидацию для этого валидатора. | yii\validators\Validator |
| $except | массив|строка | Сценарии, к которым валидатор не должен применяться. | yii\validators\Validator |
| $filter | строка|массив|Closure | Дополнительный фильтр, применяемый к запросу к базе данных для проверки уникальности значения атрибута. | yii\validators\UniqueValidator |
| $isEmpty | вызываемый объект | PHP-вызываемый объект, который заменяет стандартную реализацию isEmpty(). | yii\validators\Validator |
| $message | строка | Пользовательское сообщение об ошибке. | yii\validators\UniqueValidator |
| $on | массив|строка | Сценарии, для которых может применяться валидатор. | yii\validators\Validator |
| $skipOnEmpty | boolean | Пропускать ли эту проверку, если значение атрибута равно null или пустой строке. | yii\validators\Validator |
| $skipOnError | boolean | Пропускать ли эту проверку, если для атрибута уже есть ошибка валидации по предыдущим правилам. | yii\validators\Validator |
| $targetAttribute | строка|массив | Имя атрибута ActiveRecord, которое должно использоваться для проверки уникальности текущего значения атрибута. | yii\validators\UniqueValidator |
| $targetAttributeJunction | string | Определение взаимосвязи целевых атрибутов | yii\validators\UniqueValidator |
| $targetClass | string | Имя класса ActiveRecord, используемого для проверки уникальности текущего значения атрибута. | yii\validators\UniqueValidator |
| $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\UniqueValidator |
| 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\UniqueValidator |
| validateAttributes() | Проверяет указанный объект. | yii\validators\Validator |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| formatMessage() | Форматирует сообщение, используя I18N, или простым strtr, если \Yii::$app недоступен. | yii\validators\Validator |
| validateValue() | Проверяет значение. | yii\validators\Validator |
Подробное описание свойств
$comboNotUnique общедоступное свойство (доступно с версии 2.0.9)
Устарело с версии 2.0.10, будет удалено в 2.1. Используйте свойство $message для настройки пользовательского сообщения для нескольких целевых атрибутов.public string $comboNotUnique = null
$filter общедоступное свойство
Дополнительный фильтр, который необходимо применить к запросу к БД для проверки уникальности значения атрибута. Это может быть строка или массив, представляющие дополнительное условие запроса (обратитесь к yii\db\Query::where() для формата условия запроса), или анонимная функция со сигнатурой function ($query), где $query — объект Query, который вы можете изменить в функции.
public string|array|Closure $filter = null
$message общедоступное свойство
Пользовательское сообщение об ошибке.
При проверке одного атрибута оно может содержать следующие плейсхолдеры, которые будут соответствующим образом заменены валидатором:
-
{attribute}: метка проверяемого атрибута -
{value}: значение проверяемого атрибута
При проверке нескольких атрибутов оно может содержать следующие плейсхолдеры:
-
{attributes}: метки проверяемых атрибутов. -
{values}: значения проверяемых атрибутов.
public string $message = null
$targetAttribute общедоступное свойство
Имя атрибута ActiveRecord, которое следует использовать для проверки уникальности текущего значения атрибута. Если не задано, будет использовано имя текущего проверяемого атрибута. Вы можете использовать массив для проверки уникальности нескольких столбцов одновременно. Значения массива — это атрибуты, которые будут использоваться для проверки уникальности, а ключи массива — атрибуты, значения которых необходимо проверить.
public string|array $targetAttribute = null
$targetAttributeJunction открытая переменная (доступна начиная с версии 2.0.11)
Определяет взаимосвязь целевых атрибутов
public string $targetAttributeJunction = 'and'
$targetClass открытая переменная
Имя класса ActiveRecord, которое следует использовать для проверки уникальности текущего значения атрибута. Если не задано, будет использован ActiveRecord-класс проверяемого атрибута.
См. также $targetAttribute.
public string $targetClass = null
Подробное описание методов
init() открытый метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданными конфигурационными данными.
| public void init ( ) |
|---|
validateAttribute() открытый метод
Проверяет единственный атрибут.
Подклассы должны реализовать этот метод, чтобы предоставить фактическую логику проверки.
| public void validateAttribute ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Данные модели для проверки |
| $attribute | string |
Имя проверяемого атрибута. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-validators-uniquevalidator.html