Spec-Zone.ru › Yii 1.1

CNumberValidator

Пакет system.validators
Наследование класс CNumberValidator » CValidator » CComponent
С момента 1.0
Исходный код framework/validators/CNumberValidator.php
CNumberValidator проверяет, является ли значение атрибута числом.

В дополнение к свойству message для установки пользовательского сообщения об ошибке, CNumberValidator имеет несколько пользовательских сообщений об ошибках, которые можно установить для различных сценариев валидации. Для указания пользовательского сообщения, когда числовое значение слишком большое, можно использовать свойство tooBig. Аналогично для tooSmall. Сообщения могут содержать дополнительные заполнитель, которые будут заменены фактическим содержимым. В дополнение к заполнитель «{attribute}», распознаваемый всеми валидаторами (см. CValidator), CNumberValidator позволяет использовать следующие плейсхолдеры:
  • {min}: при использовании tooSmall, заменяется на минимальное значение числа min.
  • {max}: при использовании tooBig, заменяется на максимальное значение числа max.

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

Свойство Тип Описание Определено
allowEmpty boolean можно ли значение атрибута быть null или пустым. CNumberValidator
attributes array список атрибутов, которые необходимо проверить. CValidator
builtInValidators array список встроенных валидаторов (имя=>класс) CValidator
enableClientValidation boolean выполнять ли проверку на стороне клиента. CValidator
except array список сценариев, для которых валидатор не должен применяться. CValidator
integerOnly boolean значение атрибута может быть только целым числом. CNumberValidator
integerPattern string регулярное выражение для соответствия целых чисел. CNumberValidator
max integer|float верхний предел числа. CNumberValidator
message string пользовательское сообщение об ошибке. CValidator
min integer|float нижний предел числа. CNumberValidator
numberPattern string регулярное выражение для соответствия числам. CNumberValidator
on array список сценариев, для которых должен применяться валидатор. CValidator
safe boolean являются ли атрибуты, перечисленные с этим валидатором, безопасными для массового назначения. CValidator
skipOnError boolean пропустить ли эту проверку, если уже есть ошибка валидации для текущего атрибута. CValidator
tooBig string пользовательское сообщение об ошибке, используемое, когда значение слишком большое. CNumberValidator
tooSmall string пользовательское сообщение об ошибке, используемое, когда значение слишком маленькое. CNumberValidator

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

Метод Описание Определено
__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, необходимый для выполнения проверки на стороне клиента. CNumberValidator
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() Проверяет атрибут объекта. CNumberValidator

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

allowEmpty свойство

public boolean $allowEmpty;

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

integerOnly свойство

public boolean $integerOnly;

указывает, может ли значение атрибута быть только целым числом. По умолчанию false.

integerPattern свойство (доступно начиная с v1.1.7)

public string $integerPattern;

регулярное выражение для соответствия целых чисел.

max свойство

public integer|float $max;

верхний предел числа. По умолчанию null, что означает отсутствие верхнего предела.

min свойство

public integer|float $min;

нижний предел числа. По умолчанию null, что означает отсутствие нижнего предела.

numberPattern свойство (доступно начиная с v1.1.7)

public string $numberPattern;

регулярное выражение для соответствия чисел.

tooBig свойство

public string $tooBig;

пользовательское сообщение об ошибке, используемое, когда значение слишком большое.

tooSmall свойство

public string $tooSmall;

пользовательское сообщение об ошибке, используемое, когда значение слишком маленькое.

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

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

public string clientValidateAttribute(CModel $object, string $attribute)
$object CModel валидируемый объект данных
$attribute string имя атрибута, который нужно проверить.
{return} string скрипт проверки на стороне клиента.
Исходный код: framework/validators/CNumberValidator.php#125 (показать)
public function clientValidateAttribute($object,$attribute)
{
    
$label=$object->getAttributeLabel($attribute);

    if((
$message=$this->message)===null)
        
$message=$this->integerOnly ? Yii::t('yii','{attribute} must be an integer.') : Yii::t('yii','{attribute} must be a number.');
    
$message=strtr($message, array(
        
'{attribute}'=>$label,
    ));

    if((
$tooBig=$this->tooBig)===null)
        
$tooBig=Yii::t('yii','{attribute} is too big (maximum is {max}).');
    
$tooBig=strtr($tooBig, array(
        
'{attribute}'=>$label,
        
'{max}'=>$this->max,
    ));

    if((
$tooSmall=$this->tooSmall)===null)
        
$tooSmall=Yii::t('yii','{attribute} is too small (minimum is {min}).');
    
$tooSmall=strtr($tooSmall, array(
        
'{attribute}'=>$label,
        
'{min}'=>$this->min,
    ));

    
$pattern=$this->integerOnly ? $this->integerPattern : $this->numberPattern;
    
$js="
if(!value.match(
$pattern)) {
messages.push("
.CJSON::encode($message).");
}
"
;
    if(
$this->min!==null)
    {
        
$js.="
if(value<
{$this->min}) {
messages.push("
.CJSON::encode($tooSmall).");
}
"
;
    }
    if(
$this->max!==null)
    {
        
$js.="
if(value>
{$this->max}) {
messages.push("
.CJSON::encode($tooBig).");
}
"
;
    }

    if(
$this->allowEmpty)
    {
        
$js="
if(jQuery.trim(value)!='') {
$js
}
"
;
    }

    return 
$js;
}

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

См. также

  • CActiveForm::enableClientValidation

validateAttribute() метод

protected void validateAttribute(CModel $object, string $attribute)
$object CModel валидируемый объект
$attribute string валидируемый атрибут
Исходный код: framework/validators/CNumberValidator.php#76 (показать)
protected function validateAttribute($object,$attribute)
{
    
$value=$object->$attribute;
    if(
$this->allowEmpty && $this->isEmpty($value))
        return;
    if(!
is_numeric($value))
    {
        
// https://github.com/yiisoft/yii/issues/1955
        // https://github.com/yiisoft/yii/issues/1669
        
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} must be a number.');
        
$this->addError($object,$attribute,$message);
        return;
    }
    if(
$this->integerOnly)
    {
        if(!
preg_match($this->integerPattern,"$value"))
        {
            
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} must be an integer.');
            
$this->addError($object,$attribute,$message);
        }
    }
    else
    {
        if(!
preg_match($this->numberPattern,"$value"))
        {
            
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} must be a number.');
            
$this->addError($object,$attribute,$message);
        }
    }
    if(
$this->min!==null && $value<$this->min)
    {
        
$message=$this->tooSmall!==null?$this->tooSmall:Yii::t('yii','{attribute} is too small (minimum is {min}).');
        
$this->addError($object,$attribute,$message,array('{min}'=>$this->min));
    }
    if(
$this->max!==null && $value>$this->max)
    {
        
$message=$this->tooBig!==null?$this->tooBig:Yii::t('yii','{attribute} is too big (maximum is {max}).');
        
$this->addError($object,$attribute,$message,array('{max}'=>$this->max));
    }
}

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

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

Spec-Zone.ru

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