CRangeValidator
| Пакет | system.validators |
|---|---|
| Наследование | класс CRangeValidator » CValidator » CComponent |
| С версии | 1.0 |
| Исходный код | framework/validators/CRangeValidator.php |
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} | строка | скрипт проверки на стороне клиента. |
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, необходимый для выполнения проверки на стороне клиента.
См. также
validateAttribute() метод
protected void validateAttribute(CModel $object, string $attribute) | ||
| $object | CModel | объект, который проверяется |
| $attribute | строка | проверяемый атрибут |
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