Spec-Zone.ru › Yii 1.1

CRangeValidator

Пакет system.validators
Наследование класс CRangeValidator » CValidator » CComponent
С версии 1.0
Исходный код framework/validators/CRangeValidator.php
CRangeValidator проверяет, что значение атрибута содержится в списке (указанном через range). Вы можете инвертировать логику валидации с помощью свойства not (доступно начиная с версии 1.1.5). Например,
class QuestionForm extends CFormModel
{
    public function rules()
    {
        return array(
            array('text, tag', 'required'),
            array('text, 'type', 'type' => 'string'),
            array('tag', 'in', 'range' => array('php', 'mysql', 'jquery')),
        );
    }
}

Общедоступные свойства

Свойство Тип Описание Определено
allowEmpty boolean указывает, может ли значение атрибута быть null или пустым. CRangeValidator
attributes массив список атрибутов, которые необходимо проверить. CValidator
builtInValidators массив список встроенных валидаторов (имя=>класс) CValidator
enableClientValidation boolean выполнять ли проверку на стороне клиента. CValidator
except массив список сценариев, для которых валидатор не должен применяться. CValidator
message строка пользовательское сообщение об ошибке. CValidator
not boolean инвертировать ли логику проверки. CRangeValidator
on массив список сценариев, для которых валидатор должен применяться. CValidator
range массив список допустимых значений, среди которых должно быть значение атрибута CRangeValidator
safe boolean являются ли атрибуты, указанные с этим валидатором, безопасными для массового назначения. CValidator
skipOnError boolean пропустить ли эту проверку, если уже есть ошибка валидации для текущего атрибута. CValidator
strict boolean строгая проверка (необходимо совпадение типа и значения) CRangeValidator

Общедоступные методы

Метод Описание Определено
__call() Вызывает метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
applyTo() Возвращает значение, указывающее, применяется ли валидатор к указанному сценарию. CValidator
asa() Возвращает объект поведения по имени. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик события к событию. CComponent
canGetProperty() Определяет, может ли свойство быть прочитано. CComponent
canSetProperty() Определяет, может ли свойство быть установлено. CComponent
clientValidateAttribute() Возвращает JavaScript, необходимый для проверки на стороне клиента. CRangeValidator
createValidator() Создаёт объект валидатора. CValidator
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующего обработчика событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения компонента. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые поведения компонента. CComponent
evaluateExpression() Вычисляет PHP выражение или обратный вызов в контексте этого компонента. CComponent
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединённые обработчики для события с заданным именем. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
validate() Проверяет указанный объект. CValidator

Защищённые методы

Метод Описание Определено
addError() Добавляет ошибку об указанном атрибуте в активную запись. CValidator
isEmpty() Проверяет, является ли данное значение пустым. CValidator
validateAttribute() Проверяет атрибут объекта. CRangeValidator

Подробности свойств

allowEmpty свойство

public boolean $allowEmpty;

указывает, может ли значение атрибута быть null или пустым. По умолчанию true, что означает, что если атрибут пуст, он считается валидным.

not свойство (доступно с версии 1.1.5)

public boolean $not;

инвертировать ли логику проверки. По умолчанию false. Если установлено в true, значение атрибута НЕ должно быть в списке значений, определённых через range.

range свойство

public array $range;

список допустимых значений, среди которых должно быть значение атрибута

strict свойство

public boolean $strict;

указывает, является ли сравнение строгим (тип и значение должны быть одинаковыми)

Подробное описание методов

clientValidateAttribute() метод (доступен начиная с v1.1.7)

public string clientValidateAttribute(CModel $object, string $attribute)
$object CModel объект данных, который проверяется
$attribute строка имя атрибута, который проверяется.
{return} строка скрипт проверки на стороне клиента.
Исходный код: framework/validators/CRangeValidator.php#102 (показать)
public function clientValidateAttribute($object,$attribute)
{
    if(!
is_array($this->range))
        throw new 
CException(Yii::t('yii','The "range" property must be specified with a list of values.'));

    if((
$message=$this->message)===null)
        
$message=$this->not ? Yii::t('yii','{attribute} is in the list.') : Yii::t('yii','{attribute} is not in the list.');
    
$message=strtr($message,array(
        
'{attribute}'=>$object->getAttributeLabel($attribute),
    ));

    
$range=array();
    foreach(
$this->range as $value)
        
$range[]=(string)$value;
    
$range=CJSON::encode($range);

    return 
"
if("
.($this->allowEmpty ? "jQuery.trim(value)!='' && " : '').($this->not ? "jQuery.inArray(value, $range)>=0" : "jQuery.inArray(value, $range)<0").") {
messages.push("
.CJSON::encode($message).");
}
"
;
}

Возвращает JavaScript, необходимый для выполнения проверки на стороне клиента.

См. также

  • CActiveForm::enableClientValidation

validateAttribute() метод

protected void validateAttribute(CModel $object, string $attribute)
$object CModel объект, который проверяется
$attribute строка проверяемый атрибут
Исходный код: framework/validators/CRangeValidator.php#62 (показать)
protected function validateAttribute($object,$attribute)
{
    
$value=$object->$attribute;
    if(
$this->allowEmpty && $this->isEmpty($value))
        return;
    if(!
is_array($this->range))
        throw new 
CException(Yii::t('yii','The "range" property must be specified with a list of values.'));
    
$result = false;
    if(
$this->strict)
        
$result=in_array($value,$this->range,true);
    else
    {
        foreach(
$this->range as $r)
        {
            
$result = $r === '' || $value === '' ? $r === $value : $r == $value;
            if(
$result)
                break;
        }
    }
    if(!
$this->not && !$result)
    {
        
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is not in the list.');
        
$this->addError($object,$attribute,$message);
    }
    elseif(
$this->not && $result)
    {
        
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is in the list.');
        
$this->addError($object,$attribute,$message);
    }
}

Проверяет атрибут объекта. Если обнаружена ошибка, сообщение об ошибке добавляется к объекту.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CRangeValidator

Spec-Zone.ru

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