Spec-Zone.ru › Yii 1.1

CStringValidator

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

Обратите внимание, что этот валидатор должен использоваться только с атрибутами строкового типа.

Помимо свойства message для установки пользовательского сообщения об ошибке, CStringValidator имеет несколько настраиваемых сообщений об ошибках, соответствующих различным сценариям валидации. Для определения пользовательского сообщения, когда строка слишком короткая, можно использовать свойство tooShort. Аналогично для tooLong. Сообщения могут содержать заполнитель, который будет заменён фактическим содержанием. В дополнение к заполнению "{attribute}", распознаваемому всеми валидаторами (см. CValidator), CStringValidator допускает указание следующих заполнителей:
  • {min}: при использовании tooShort, заменяется минимальной длиной, min, если задана.
  • {max}: при использовании tooLong, заменяется максимальной длиной, max, если задана.
  • {length}: при использовании message, заменяется точной требуемой длиной, is, если задана.

Свойства

Свойство Тип Описание Определено в
allowEmpty boolean указывает, может ли значение атрибута быть null или пустым. CStringValidator
attributes array список атрибутов, которые должны быть проверены. CValidator
builtInValidators array список встроенных валидаторов (имя=>класс) CValidator
enableClientValidation boolean указывает, нужно ли выполнять проверку на стороне клиента. CValidator
encoding string кодировка значения строки, подлежащего проверке (например, 'UTF-8'). CStringValidator
except array список сценариев, для которых валидатор не должен применяться. CValidator
is integer точная длина. CStringValidator
max integer максимальная длина. CStringValidator
message string пользовательское сообщение об ошибке. CValidator
min integer минимальная длина. CStringValidator
on array список сценариев, для которых валидатор должен применяться. CValidator
safe boolean указывает, следует ли считать атрибуты, перечисленные с этим валидатором, безопасными для массового присваивания. CValidator
skipOnError boolean указывает, следует ли пропускать эту проверку, если для текущего атрибута уже есть ошибка валидации. CValidator
tooLong string пользовательское сообщение об ошибке, используемое, когда значение слишком длинное. CStringValidator
tooShort string пользовательское сообщение об ошибке, используемое, когда значение слишком короткое. CStringValidator

Публичные методы

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

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

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

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

allowEmpty свойство

public boolean $allowEmpty;

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

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

public string $encoding;

кодировка строкового значения, подлежащего проверке (например, 'UTF-8'). Это свойство используется только при включенном расширении mbstring PHP. Значение этого свойства будет использовано как второй параметр функции mb_strlen(). Если это свойство не установлено, будет использоваться кодировка приложения. Если это свойство установлено в false, то будет использована функция strlen(), даже если mbstring включен.

is свойство

public integer $is;

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

max свойство

public integer $max;

максимальная длина. По умолчанию null, что означает отсутствие максимального ограничения.

min свойство

public integer $min;

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

tooLong свойство

public string $tooLong;

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

tooShort свойство

public string $tooShort;

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

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

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

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

    if((
$message=$this->message)===null)
        
$message=Yii::t('yii','{attribute} is of the wrong length (should be {length} characters).');
    
$message=strtr($message, array(
        
'{attribute}'=>$label,
        
'{length}'=>$this->is,
    ));

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

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

    
$js='';
    if(
$this->min!==null)
    {
        
$js.="
if(value.length<
{$this->min}) {
messages.push("
.CJSON::encode($tooShort).");
}
"
;
    }
    if(
$this->max!==null)
    {
        
$js.="
if(value.length>
{$this->max}) {
messages.push("
.CJSON::encode($tooLong).");
}
"
;
    }
    if(
$this->is!==null)
    {
        
$js.="
if(value.length!=
{$this->is}) {
messages.push("
.CJSON::encode($message).");
}
"
;
    }

    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 строка валидируемый атрибут
Исходный код: framework/validators/CStringValidator.php#77 (показать)
protected function validateAttribute($object,$attribute)
{
    
$value=$object->$attribute;
    if(
$this->allowEmpty && $this->isEmpty($value))
        return;

    if(
is_array($value))
    {
        
// https://github.com/yiisoft/yii/issues/1955
        
$this->addError($object,$attribute,Yii::t('yii','{attribute} is invalid.'));
        return;
    }

    if(
function_exists('mb_strlen') && $this->encoding!==false)
        
$length=mb_strlen($value, $this->encoding ? $this->encoding : Yii::app()->charset);
    else
        
$length=strlen($value);

    if(
$this->min!==null && $length<$this->min)
    {
        
$message=$this->tooShort!==null?$this->tooShort:Yii::t('yii','{attribute} is too short (minimum is {min} characters).');
        
$this->addError($object,$attribute,$message,array('{min}'=>$this->min));
    }
    if(
$this->max!==null && $length>$this->max)
    {
        
$message=$this->tooLong!==null?$this->tooLong:Yii::t('yii','{attribute} is too long (maximum is {max} characters).');
        
$this->addError($object,$attribute,$message,array('{max}'=>$this->max));
    }
    if(
$this->is!==null && $length!==$this->is)
    {
        
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is of the wrong length (should be {length} characters).');
        
$this->addError($object,$attribute,$message,array('{length}'=>$this->is));
    }
}

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

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

Spec-Zone.ru

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