Класс yii\validators\CompareValidator
| Наследование | yii\validators\CompareValidator » yii\validators\Validator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/validators/CompareValidator.php |
CompareValidator сравнивает значение указанного атрибута с другим значением.
Значение, с которым сравнивается атрибут, может быть значением другого атрибута (указано через $compareAttribute) или константой (указано через $compareValue). Если указаны оба, приоритет отдаётся последнему. Если ни один из них не указан, атрибут сравнивается с другим атрибутом, имя которого получено путем добавления "_repeat" к имени исходного атрибута.
CompareValidator поддерживает различные операторы сравнения, указанные через свойство $operator.
По умолчанию используется функция сравнения, основанная на строковых значениях, что означает сравнение значений байт за байтом. При сравнении чисел убедитесь, что установили $type в TYPE_NUMBER, чтобы включить числовое сравнение.
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $attributeNames | массив | Имена атрибутов. | yii\validators\Validator |
| $attributes | массив|строка | Атрибуты, которые должны быть валидированы этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $builtInValidators | массив | Список встроенных валидаторов (имя => класс или конфигурация) | yii\validators\Validator |
| $compareAttribute | строка | Имя атрибута для сравнения. | yii\validators\CompareValidator |
| $compareValue | смешанный тип | Постоянное значение для сравнения. | yii\validators\CompareValidator |
| $enableClientValidation | булево | Включить проверку на стороне клиента для этого валидатора. | yii\validators\Validator |
| $except | массив|строка | Сценарии, для которых валидатор не должен применяться. | yii\validators\Validator |
| $isEmpty | вызов функции | Функция PHP, которая заменяет стандартную реализацию isEmpty(). | yii\validators\Validator |
| $message | строка | Пользовательское сообщение об ошибке. | yii\validators\CompareValidator |
| $on | массив|строка | Сценарии, для которых валидатор может применяться. | yii\validators\Validator |
| $operator | строка | Оператор сравнения. | yii\validators\CompareValidator |
| $skipOnEmpty | булево | Пропустить валидацию, если значение атрибута null или пустая строка. | yii\validators\Validator |
| $skipOnError | булево | Пропустить валидацию, если для атрибута уже есть ошибка. | yii\validators\Validator |
| $type | строка | Тип сравниваемых значений. | yii\validators\CompareValidator |
| $when | вызов функции | Функция PHP, определяющая, нужно ли применять этот валидатор. | yii\validators\Validator |
| $whenClient | строка | Имя 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\CompareValidator |
| 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\CompareValidator |
| hasEventHandlers() | Возвращает значение, указывающее, прикреплены ли какие-либо обработчики к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\validators\CompareValidator |
| 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\CompareValidator |
| validateAttributes() | Проверяет указанный объект. | yii\validators\Validator |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| compareValues() | Сравнивает два значения с заданным оператором. | yii\validators\CompareValidator |
| formatMessage() | Форматирует сообщение с использованием I18N или просто strtr, если \Yii::$app недоступен. | yii\validators\Validator |
| validateValue() | Проверяет значение. | yii\validators\CompareValidator |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| TYPE_NUMBER | 'number' | Константа для задания сравнения $type по числовым значениям. | yii\validators\CompareValidator |
| TYPE_STRING | 'string' | Константа для задания сравнения $type по числовым значениям. | yii\validators\CompareValidator |
Подробности свойств
$compareAttribute общедоступное свойство
Имя атрибута, который нужно сравнить. Когда установлены и это свойство, и $compareValue, имеет приоритет последнее. Если ни то, ни другое не установлено, сравнение выполняется с другим атрибутом, имя которого образуется путем добавления '_repeat' к атрибуту, который проверяется. Например, если проверяется 'password', то атрибутом для сравнения будет 'password_repeat'.
См. также $compareValue.
public string $compareAttribute = null
$compareValue общедоступное свойство
Постоянное значение для сравнения. Когда установлены и это свойство, и $compareAttribute, приоритет имеет это свойство.
См. также $compareAttribute.
public mixed $compareValue = null
$message общедоступное свойство
Пользовательское сообщение об ошибке. Оно может содержать следующие плейсхолдеры, которые будут соответствующим образом заменены валидатором:
-
{attribute}: метка атрибута, который проверяется -
{value}: значение атрибута, который проверяется -
{compareValue}: значение или метка атрибута, с которым сравнивается -
{compareAttribute}: метка атрибута, с которым сравнивается -
{compareValueOrAttribute}: значение или метка атрибута, с которым сравнивается
public string $message = null
$operator public свойство
Оператор для сравнения. Поддерживаются следующие операторы:
-
==: проверка на равенство двух значений. Сравнение выполняется в нестрогом режиме. -
===: проверка на равенство двух значений. Сравнение выполняется в строгом режиме. -
!=: проверка на НЕравенство двух значений. Сравнение выполняется в нестрогом режиме. -
!==: проверка на НЕравенство двух значений. Сравнение выполняется в строгом режиме. -
>: проверка, больше ли значение, которое проверяется, чем значение, с которым сравнивается. -
>=: проверка, больше или равно ли значение, которое проверяется, значению, с которым сравнивается. -
<: проверка, меньше ли значение, которое проверяется, чем значение, с которым сравнивается. -
<=: проверка, меньше или равно ли значение, которое проверяется, значению, с которым сравнивается.
При сравнении чисел убедитесь, что также задано $type в значение number.
public string $operator = '=='
$type public свойство
Тип сравниваемых значений. Поддерживаются следующие типы:
- строка: значения сравниваются как строки. Преобразование перед сравнением не выполняется.
- число: значения сравниваются как числа. Строковые значения преобразуются в числа перед сравнением.
public string $type = self::TYPE_STRING
Подробное описание методов
clientValidateAttribute() public метод
Возвращает JavaScript-код для выполнения проверки на стороне клиента.
Вызывает getClientOptions() для генерации массива опций для проверки на стороне клиента.
Вы можете переопределить этот метод, чтобы вернуть JavaScript-код проверки, если валидатор поддерживает проверку на стороне клиента.
В коде проверки определены следующие JavaScript-переменные:
-
attribute: объект, описывающий атрибут, который проверяется. -
value: значение, которое проверяется. -
messages: массив для хранения сообщений об ошибках проверки для атрибута. -
deferred: массив для хранения отложенных объектов для асинхронной проверки -
$form: jQuery-объект, содержащий элемент формы
Объект attribute содержит следующие свойства:
-
id: уникальный идентификатор атрибута (например, "loginform-username") в форме -
name: имя или выражение атрибута (например, "[0]content" для табличных данных) -
container: jQuery-селектор контейнера поля ввода -
input: jQuery-селектор поля ввода в контексте формы -
error: jQuery-селектор тега ошибки в контексте контейнера -
status: состояние поля ввода, 0: пустое, не введено ранее, 1: проверенное, 2: ожидание проверки, 3: проверка
| public string|null clientValidateAttribute ( $model, $attribute, $view ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных, которая проверяется |
| $attribute | string |
Имя атрибута, который проверяется. |
| $view | yii\web\View |
Объект представления, который будет использоваться для рендеринга представлений или файлов представлений, содержащих форму модели с применённым этим валидатором. |
| return | string|null |
Скрипт проверки на стороне клиента. Null, если валидатор не поддерживает проверку на стороне клиента. |
compareValues() protected метод
Сравнивает два значения с указанным оператором.
| protected boolean compareValues ( $operator, $type, $value, $compareValue ) | ||
|---|---|---|
| $operator | string |
Оператор сравнения |
| $type | string |
Тип сравниваемых значений |
| $value | mixed |
Сравниваемое значение |
| $compareValue | mixed |
Другое сравниваемое значение |
| return | boolean |
Является ли выполнение сравнения с указанным оператором истинным. |
getClientOptions() public метод
Возвращает параметры проверки на стороне клиента.
Этот метод обычно вызывается из clientValidateAttribute(). Вы можете переопределить этот метод, чтобы изменить параметры, которые будут переданы в проверку на стороне клиента.
| public array getClientOptions ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Проверяемая модель |
| $attribute | string |
Имя проверяемого атрибута |
| return | array |
Параметры проверки на стороне клиента |
init() public метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта с заданной конфигурацией.
| public void init ( ) |
|---|
validateAttribute() public метод
Проверяет отдельный атрибут.
Подклассы должны реализовать этот метод, чтобы предоставить фактическую логику проверки.
| public void validateAttribute ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных, которая проверяется |
| $attribute | string |
Имя атрибута, который проверяется. |
validateValue() protected метод
Проверяет значение.
Класс валидатора может реализовать этот метод, чтобы поддерживать проверку данных вне контекста модели данных.
| protected array|null validateValue ( $value ) | ||
|---|---|---|
| $value | mixed |
Значение данных, которое проверяется. |
| return | array|null |
Сообщение об ошибке и параметры, которые будут вставлены в сообщение об ошибке. Должен возвращаться Null, если данные валидны. |
| throws | 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-comparevalidator.html