包 | system.validators |
---|---|
继承 | class CDefaultValueValidator » CValidator » CComponent |
版本 | $Id: CDefaultValueValidator.php 3515 2011-12-28 12:29:24Z mdomba $ |
源码 |
CDefaultValueValidator使用给定的值为属性赋值。
这个类不会执行验证,它的主要用途是以一种动态的
方式为属性指定默认值。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
attributes | array | 需要被验证的属性的列表。 | CValidator |
builtInValidators | array | 内置验证器列表 (name=>class) | CValidator |
enableClientValidation | boolean | 是否执行客户端验证。默认值为true。 参见CActiveForm::enableClientValidation以了解更多关于客户端验证的细节。 | CValidator |
message | string | 用户自定义的错误提示信息。不同的验证器可以在该信息中 定义各种占位符(将被实际值替换)。占位符“{attribute}”可以被所有 验证器识别,它会被使用属性的标签来替换。 | CValidator |
on | array | 验证器将被应用到的情景模式的列表。 数组的键-值都是情景模式的名称。 | CValidator |
safe | boolean | 进行整块赋值是是否考虑此验证器中列出的属性的安全性。 默认值为true。 | CValidator |
setOnEmpty | boolean | 是否仅当属性值为null或empty时才为属性赋默认值。 默认值为true。如果设置为false,此属性将始终以默认值赋值,即使 它之前已经被显式地赋值过。 | CDefaultValueValidator |
skipOnError | boolean | 如果当前属性已经存在验证错误,这个验证规则 是否跳过。默认值是false。 | CValidator |
value | mixed | 为属性设置的默认值。 | CDefaultValueValidator |
公共方法
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
addError() | 添加关于指定属性的一个错误提示信息到活动记录中。 | CValidator |
isEmpty() | 检测给定值是否为空。 | CValidator |
validateAttribute() | 验证传入对象的属性。 | CDefaultValueValidator |
属性详细
setOnEmpty
属性
public boolean $setOnEmpty;
是否仅当属性值为null或empty时才为属性赋默认值。 默认值为true。如果设置为false,此属性将始终以默认值赋值,即使 它之前已经被显式地赋值过。
value
属性
public mixed $value;
为属性设置的默认值。
方法详细
validateAttribute()
方法
protected void validateAttribute(CModel $object, string $attribute)
| ||
$object | CModel | 需要验证的对象。 |
$attribute | string | 需要验证的属性。 |
protected function validateAttribute($object,$attribute)
{
if(!$this->setOnEmpty)
$object->$attribute=$this->value;
else
{
$value=$object->$attribute;
if($value===null || $value==='')
$object->$attribute=$this->value;
}
}
验证传入对象的属性。