CNumberValidator
| Пакет | system.validators |
|---|---|
| Наследование | класс CNumberValidator » CValidator » CComponent |
| С момента | 1.0 |
| Исходный код | framework/validators/CNumberValidator.php |
В дополнение к свойству message для установки пользовательского сообщения об ошибке, CNumberValidator имеет несколько пользовательских сообщений об ошибках, которые можно установить для различных сценариев валидации. Для указания пользовательского сообщения, когда числовое значение слишком большое, можно использовать свойство tooBig. Аналогично для tooSmall. Сообщения могут содержать дополнительные заполнитель, которые будут заменены фактическим содержимым. В дополнение к заполнитель «{attribute}», распознаваемый всеми валидаторами (см. CValidator), CNumberValidator позволяет использовать следующие плейсхолдеры:
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| 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 | скрипт проверки на стороне клиента. |
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, необходимый для выполнения проверки на стороне клиента.
См. также
validateAttribute() метод
protected void validateAttribute(CModel $object, string $attribute) | ||
| $object | CModel | валидируемый объект |
| $attribute | string | валидируемый атрибут |
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