Класс yii\validators\Validator
Validator — базовый класс для всех валидаторов.
Подклассы должны переопределять методы validateValue() и/или validateAttribute(), чтобы реализовать логику валидации данных. Подклассы также могут переопределять метод clientValidateAttribute() для поддержки валидации на стороне клиента.
Validator объявляет набор встроенных валидаторов, которые можно использовать с короткими именами. Они перечислены ниже:
-
boolean: yii\validators\BooleanValidator -
captcha: yii\captcha\CaptchaValidator -
compare: yii\validators\CompareValidator -
date: yii\validators\DateValidator -
datetime: yii\validators\DateValidator -
time: yii\validators\DateValidator -
default: yii\validators\DefaultValueValidator -
double: yii\validators\NumberValidator -
each: yii\validators\EachValidator -
email: yii\validators\EmailValidator -
exist: yii\validators\ExistValidator -
file: yii\validators\FileValidator -
filter: yii\validators\FilterValidator -
image: yii\validators\ImageValidator -
in: yii\validators\RangeValidator -
integer: yii\validators\NumberValidator -
match: yii\validators\RegularExpressionValidator -
required: yii\validators\RequiredValidator -
safe: yii\validators\SafeValidator -
string: yii\validators\StringValidator -
trim: yii\validators\FilterValidator -
unique: yii\validators\UniqueValidator -
url: yii\validators\UrlValidator -
ip: yii\validators\IpValidator
Для получения более подробной информации и руководства по использованию Validator, см. статью в руководстве по валидаторам.
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $attributeNames | массив | Имена атрибутов. | yii\validators\Validator |
| $attributes | массив|строка | Атрибуты, которые должны быть проверены этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $builtInValidators | массив | Список встроенных валидаторов (имя => класс или конфигурация) | yii\validators\Validator |
| $enableClientValidation | логическое значение | Включить ли валидацию на стороне клиента для этого валидатора. | yii\validators\Validator |
| $except | массив|строка | Сценарии, для которых валидатор не должен применяться. | yii\validators\Validator |
| $isEmpty | вызываемый элемент | Вызываемый элемент PHP, который заменяет стандартную реализацию isEmpty(). | yii\validators\Validator |
| $message | строка | Пользовательское сообщение об ошибке. | yii\validators\Validator |
| $on | массив|строка | Сценарии, для которых валидатор может применяться. | yii\validators\Validator |
| $skipOnEmpty | логическое значение | Пропустить ли эту проверку, если значение атрибута равно null или пустой строке. | yii\validators\Validator |
| $skipOnError | логическое значение | Пропустить ли эту проверку, если атрибут, который проверяется, уже имеет ошибку валидации согласно предыдущим правилам. | yii\validators\Validator |
| $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\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\Validator |
| 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\Validator |
| validateAttributes() | Проверяет указанный объект. | yii\validators\Validator |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| formatMessage() | Форматирует сообщение с использованием I18N или простым strtr, если \Yii::$app недоступен. | yii\validators\Validator |
| validateValue() | Проверяет значение. | yii\validators\Validator |
Подробное описание свойств
$attributeNames общедоступное только для чтения свойство
Имена атрибутов.
public array getAttributeNames ( )
$attributes общедоступное свойство
Атрибуты, которые должны быть проверены этим валидатором. Для нескольких атрибутов укажите их в виде массива; для одного атрибута можно использовать строку или массив.
public array|string $attributes = []
$builtInValidators общедоступное статическое свойство
Список встроенных валидаторов (имя => класс или конфигурация)
public static array $builtInValidators = ['boolean' => 'yii\validators\BooleanValidator', 'captcha' => 'yii\captcha\CaptchaValidator', 'compare' => 'yii\validators\CompareValidator', 'date' => 'yii\validators\DateValidator', 'datetime' => ['class' => 'yii\validators\DateValidator', 'type' => \yii\validators\DateValidator::TYPE_DATETIME], 'time' => ['class' => 'yii\validators\DateValidator', 'type' => \yii\validators\DateValidator::TYPE_TIME], 'default' => 'yii\validators\DefaultValueValidator', 'double' => 'yii\validators\NumberValidator', 'each' => 'yii\validators\EachValidator', 'email' => 'yii\validators\EmailValidator', 'exist' => 'yii\validators\ExistValidator', 'file' => 'yii\validators\FileValidator', 'filter' => 'yii\validators\FilterValidator', 'image' => 'yii\validators\ImageValidator', 'in' => 'yii\validators\RangeValidator', 'integer' => ['class' => 'yii\validators\NumberValidator', 'integerOnly' => true], 'match' => 'yii\validators\RegularExpressionValidator', 'number' => 'yii\validators\NumberValidator', 'required' => 'yii\validators\RequiredValidator', 'safe' => 'yii\validators\SafeValidator', 'string' => 'yii\validators\StringValidator', 'trim' => ['class' => 'yii\validators\FilterValidator', 'filter' => 'trim', 'skipOnArray' => true], 'unique' => 'yii\validators\UniqueValidator', 'url' => 'yii\validators\UrlValidator', 'ip' => 'yii\validators\IpValidator']
$enableClientValidation общедоступное свойство
Включить проверку на стороне клиента для этого валидатора. Фактическая проверка на стороне клиента выполняется с помощью JavaScript-кода, возвращаемого clientValidateAttribute(). Если этот метод возвращает null, даже если это свойство имеет значение true, проверка на стороне клиента этим валидатором не будет выполнена.
public boolean $enableClientValidation = true
$except общедоступное свойство
Сценарии, для которых валидатор не должен применяться. Для нескольких сценариев укажите их в виде массива; для одного сценария можно использовать строку или массив.
public array|string $except = []
$isEmpty общедоступное свойство
Вызываемый PHP-код, заменяющий стандартную реализацию isEmpty(). Если не задано, isEmpty() будет использоваться для проверки, пустое ли значение. Подпись вызываемого кода должна быть function ($value) которая возвращает boolean, показывающий, пустое ли значение.
public callable $isEmpty = null
$message общедоступное свойство
Определённое пользователем сообщение об ошибке. Оно может содержать следующие заполнитель которые будут заменены валидатором:
-
{attribute}: метка атрибута, проверяемого валидатором -
{value}: значение проверяемого атрибута
Обратите внимание, что некоторые валидаторы могут вводить другие свойства для сообщений об ошибках, используемых, когда не выполняются определённые условия проверки. Обратитесь к документации API отдельного класса для получения подробностей о этих свойствах. По соглашению, это свойство представляет основное сообщение об ошибке, используемое, когда не выполняется самое важное условие проверки.
public string $message = null
$on public property
Сценарии, к которым может быть применён валидатор. Для нескольких сценариев укажите массив; для одного сценария можно использовать строку или массив.
public array|string $on = []
$skipOnEmpty public property
Нужно ли пропустить эту валидационную правило, если значение атрибута равно null или пустой строке.
public boolean $skipOnEmpty = true
$skipOnError public property
Нужно ли пропустить это правило валидации, если у атрибута, который проверяется, уже есть ошибка валидации в соответствии с предыдущими правилами. По умолчанию значение true.
public boolean $skipOnError = true
$when public property
PHP-вызов, значение возвращаемого которого определяет, нужно ли применять этот валидатор. Подпись вызова должна быть function ($model, $attribute), где $model и $attribute относятся к модели и атрибуту, которые в данный момент проверяются. Вызов должен возвращать значение boolean.
Этот параметр в основном предназначен для поддержки условной валидации на стороне сервера. Если этот параметр не задан, этот валидатор всегда будет применяться на стороне сервера.
Следующий пример включит валидатор только тогда, когда выбранная страна — США:
function ($model) {
return $model->country == Country::USA;
}
См. также $whenClient.
public callable $when = null
$whenClient public property
Имя JavaScript-функции, возвращаемое значение которой определяет, нужно ли применять этот валидатор на стороне клиента. Подпись функции должна быть function (attribute, value), где attribute — объект, описывающий атрибут, который проверяется (см. clientValidateAttribute()), а value — текущее значение атрибута.
Этот параметр в основном предназначен для поддержки условной валидации на стороне клиента. Если этот параметр не задан, этот валидатор всегда будет применяться на стороне клиента.
Следующий пример включит валидатор только тогда, когда выбранная страна — США:
function (attribute, value) {
return $('#country').val() === 'USA';
}
См. также $when.
public string $whenClient = null
Method Details
addError() public method
Добавляет ошибку об указанном атрибуте в объект модели.
Это вспомогательный метод, который выполняет выбор сообщения и интернационализацию.
| public void addError ( $model, $attribute, $message, $params = [] ) | ||
|---|---|---|
| $model | yii\base\Model |
Проверяемая модель данных |
| $attribute | string |
Проверяемый атрибут |
| $message | string |
Сообщение об ошибке |
| $params | array |
Значения для заполнителей в сообщении об ошибке |
clientValidateAttribute() public method
Возвращает 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, если валидатор не поддерживает проверку на стороне клиента. |
createValidator() public static method
Создает объект валидатора.
| public static yii\validators\Validator createValidator ( $type, $model, $attributes, $params = [] ) | ||
|---|---|---|
| $type | string|Closure |
Тип валидатора. Это может быть:
|
| $model | yii\base\Model |
Модель данных, которая будет проверяться. |
| $attributes | array|string |
Список атрибутов, которые будут проверяться. Это может быть массив имен атрибутов или строка с именами атрибутов, разделенных запятыми. |
| $params | array |
Начальные значения, которые будут применены к свойствам валидатора. |
| return | yii\validators\Validator |
Валидатор |
formatMessage() protected method (available since version 2.0.12)
Форматирует сообщение с использованием I18N или простой strtr, если \Yii::$app недоступен.
| protected string formatMessage ( $message, $params ) | ||
|---|---|---|
| $message | string | |
| $params | array | |
getAttributeNames() public method (available since version 2.0.12)
Возвращает очищенные имена атрибутов без символа ! в начале
| public array getAttributeNames ( ) | ||
|---|---|---|
| return | array |
Имена атрибутов. |
getClientOptions() public method (available since version 2.0.11)
Возвращает параметры проверки на стороне клиента.
Этот метод обычно вызывается из clientValidateAttribute(). Вы можете переопределить этот метод, чтобы изменить параметры, которые будут переданы в проверку на стороне клиента.
| public array getClientOptions ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Проверяемая модель |
| $attribute | string |
Имя проверяемого атрибута |
| return | array |
Параметры проверки на стороне клиента |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| public void init ( ) |
|---|
isActive() public method
Возвращает значение, указывающее, активен ли валидатор для данного сценария и атрибута.
Валидатор активен, если
- свойство
onвалидатора пустое или - свойство
onвалидатора содержит указанный сценарий
| public boolean isActive ( $scenario ) | ||
|---|---|---|
| $scenario | string |
Имя сценария |
| return | boolean |
Применяется ли валидатор к указанному сценарию. |
isEmpty() public method
Проверяет, пустое ли данное значение.
Значение считается пустым, если оно null, пустой массив или пустая строка. Обратите внимание, что этот метод отличается от PHP empty(). Он вернет false, когда значение равно 0.
| public boolean isEmpty ( $value ) | ||
|---|---|---|
| $value | mixed |
Проверяемое значение |
| return | boolean |
Является ли значение пустым |
validate() public method
Проверяет заданное значение.
Вы можете использовать этот метод для проверки значения вне контекста модели данных.
| public boolean validate ( $value, &$error = null ) | ||
|---|---|---|
| $value | mixed |
Значение данных, которое нужно проверить. |
| $error | string |
Сообщение об ошибке, которое будет возвращено, если проверка завершится неудачно. |
| return | boolean |
Являются ли данные валидными. |
validateAttribute() public method
Проверяет отдельный атрибут.
Подклассы должны реализовать этот метод, чтобы предоставить фактическую логику проверки.
| public void validateAttribute ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных, подлежащая валидации |
| $attribute | string |
Имя атрибута, подлежащего валидации. |
validateAttributes() public method
Проверяет указанный объект.
| public void validateAttributes ( $model, $attributes = null ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных, которая проверяется |
| $attributes | массив|null |
Список атрибутов, которые необходимо проверить. Обратите внимание, что если атрибут не связан с валидатором, он будет проигнорирован. Если этот параметр равен null, каждый атрибут, указанный в $attributes, будет проверен. |
validateValue() protected method
Проверяет значение.
Класс валидатора может реализовать этот метод для поддержки валидации данных вне контекста модели данных.
| protected массив|null validateValue ( $value ) | ||
|---|---|---|
| $value | mixed |
Значение данных, подлежащее валидации. |
| return | массив|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-validator.html