Класс yii\captcha\CaptchaValidator
| Наследование | yii\captcha\CaptchaValidator » yii\validators\Validator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/captcha/CaptchaValidator.php |
CaptchaValidator проверяет, что значение атрибута совпадает с кодом проверки, отображаемым на CAPTCHA.
CaptchaValidator следует использовать вместе с yii\captcha\CaptchaAction.
Обратите внимание, что после успешной проверки CAPTCHA новый CAPTCHA будет автоматически сгенерирован. В результате, проверка CAPTCHA не должна использоваться в режиме AJAX-валидации, так как она может отклонить проверку, даже если пользователь ввел тот же код, что и на изображении CAPTCHA, который фактически отличается от последнего кода CAPTCHA.
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $attributeNames | массив | Имена атрибутов. | yii\validators\Validator |
| $attributes | массив|строка | Атрибуты, которые будут проверены этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $builtInValidators | массив | Список встроенных валидаторов (имя => класс или конфигурация) | yii\validators\Validator |
| $captchaAction | строка | Путь к действию контроллера, который отображает изображение CAPTCHA. | yii\captcha\CaptchaValidator |
| $caseSensitive | булево | Является ли сравнение чувствительным к регистру. | yii\captcha\CaptchaValidator |
| $enableClientValidation | булево | Включить ли проверку на стороне клиента для этого валидатора. | yii\validators\Validator |
| $except | массив|строка | Сценарии, для которых валидатор не должен применяться. | yii\validators\Validator |
| $isEmpty | вызываемый элемент | PHP-вызываемый элемент, который заменяет стандартную реализацию isEmpty(). | yii\validators\Validator |
| $message | строка | Пользовательское сообщение об ошибке. | yii\validators\Validator |
| $on | массив|строка | Сценарии, для которых валидатор может применяться. | yii\validators\Validator |
| $skipOnEmpty | булево | Пропустить ли этот валидатор, если входное значение пустое. | yii\captcha\CaptchaValidator |
| $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\captcha\CaptchaValidator |
| createCaptchaAction() | Создает объект действия CAPTCHA из маршрута, указанного в $captchaAction. | yii\captcha\CaptchaValidator |
| 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\captcha\CaptchaValidator |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединенный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\captcha\CaptchaValidator |
| 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\captcha\CaptchaValidator |
Подробное описание свойств
$captchaAction общедоступное свойство
Маршрут действия контроллера, который отображает изображение CAPTCHA.
public string $captchaAction = 'site/captcha'
$caseSensitive общедоступное свойство
Будет ли сравнение чувствительным к регистру. По умолчанию false.
public boolean $caseSensitive = false
$skipOnEmpty общедоступное свойство
Пропускать ли этот валидатор, если вход пустой.
public boolean $skipOnEmpty = false
Подробное описание методов
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, если валидатор не поддерживает проверку на стороне клиента. |
createCaptchaAction() public method
Создаёт объект действия CAPTCHA из маршрута, указанного в $captchaAction.
| public yii\captcha\CaptchaAction createCaptchaAction ( ) | ||
|---|---|---|
| return | yii\captcha\CaptchaAction |
Объект действия |
| throws | yii\base\InvalidConfigException | |
getClientOptions() public method
Возвращает параметры проверки на стороне клиента.
Этот метод обычно вызывается из clientValidateAttribute(). Вы можете переопределить этот метод для изменения параметров, которые будут переданы в проверку на стороне клиента.
| public array getClientOptions ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Проверяемая модель |
| $attribute | string |
Имя проверяемого атрибута |
| return | array |
Параметры проверки на стороне клиента |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданными настройками.
| public void init ( ) |
|---|
validateValue() protected method
Проверяет значение.
Класс валидатора может реализовать этот метод для поддержки проверки данных вне контекста модели данных.
| 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-captcha-captchavalidator.html