CStringValidator
| Пакет | system.validators |
|---|---|
| Наследование | class CStringValidator » CValidator » CComponent |
| С версии | 1.0 |
| Исходный код | framework/validators/CStringValidator.php |
Обратите внимание, что этот валидатор должен использоваться только с атрибутами строкового типа.
Помимо свойства message для установки пользовательского сообщения об ошибке, CStringValidator имеет несколько настраиваемых сообщений об ошибках, соответствующих различным сценариям валидации. Для определения пользовательского сообщения, когда строка слишком короткая, можно использовать свойство tooShort. Аналогично для tooLong. Сообщения могут содержать заполнитель, который будет заменён фактическим содержанием. В дополнение к заполнению "{attribute}", распознаваемому всеми валидаторами (см. CValidator), CStringValidator допускает указание следующих заполнителей:
Свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| 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 |
Защищённые методы
| Метод | Описание | Определён в |
|---|---|---|
| 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} | строка | скрипт проверки на стороне клиента. |
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, необходимый для выполнения проверки на стороне клиента.
См. также
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($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