Spec-Zone.ru › Yii 2.0

Класс yii\validators\Validator

Все классы | Свойства | Методы
Наследование yii\validators\Validator » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable
Подклассы yii\captcha\CaptchaValidator, yii\mongodb\validators\MongoDateValidator, yii\mongodb\validators\MongoIdValidator, yii\validators\BooleanValidator, yii\validators\CompareValidator, yii\validators\DateValidator, yii\validators\DefaultValueValidator, yii\validators\EachValidator, yii\validators\EmailValidator, yii\validators\ExistValidator, yii\validators\FileValidator, yii\validators\FilterValidator, yii\validators\ImageValidator, yii\validators\InlineValidator, yii\validators\IpValidator, yii\validators\NumberValidator, yii\validators\RangeValidator, yii\validators\RegularExpressionValidator, yii\validators\RequiredValidator, yii\validators\SafeValidator, yii\validators\StringValidator, yii\validators\UniqueValidator, yii\validators\UrlValidator
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/validators/Validator.php

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: проверяется

См. также:

  • getClientOptions()
  • yii\widgets\ActiveForm::$enableClientValidation
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

Тип валидатора. Это может быть:

  • встроенное имя валидатора, перечисленное в $builtInValidators;
  • имя метода класса модели;
  • анонимная функция;
  • имя класса валидатора.
$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

Spec-Zone.ru

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