- array(array('username', 'required'),
- array('username', 'length', 'min'=>3, 'max'=>12),
- array('password', 'compare', 'compareAttribute'=>'password2,'on'=>'register'),
- array('password', 'authenticate', 'on'=>'login'),
- array('Price','numerical', 'integerOnly'=>true),
- );
- public function rules()
- {
- return array(
- array('title, content, status', 'required'),
- array('title', 'length', 'max'=>128),
- array('status', 'in', 'range'=>array(1,2,3)),
- array('tags', 'match', 'pattern'=>'/^[ws,]+$/',
- 'message'=>'Tags can only contain word characters.'),
- array('tags', 'normalizeTags'),
- array('title, status', 'safe', 'on'=>'search'),
- );
} 预定义完整列表:
boolean : http://yiiframework.com/doc/api/CBooleanValidator 的别名, 确保属性的值是 CBooleanValidator::trueValue http://yiiframework.com/doc/api/CBooleanValidator#trueValue 或 CBooleanValidator::falseValue http://yiiframework.com/doc/api/CBooleanValidator#falseValue .
captcha : http://www.yiiframework.com/doc/api/CCaptchaValidator 的别名, 确保了特性的值等于 CAPTCHA http://en.wikipedia.org/wiki/Captcha 显示出来的验证码.
compare : http://www.yiiframework.com/doc/api/CCompareValidator 的别名, 确保了特性的值等于另一个特性或常量.
email : http://www.yiiframework.com/doc/api/CEmailValidator 的别名, 确保了特性的值是一个有效的电邮地址.
default : http://www.yiiframework.com/doc/api/CDefaultValueValidator 的别名, 为特性指派了一个默认值.
exist : http://yiiframework.com/doc/api/CExistValidator 的别名, 确保属性值存在于指定的数据表字段中.
file : http://www.yiiframework.com/doc/api/CFileValidator 的别名, 确保了特性包含了一个上传文件的名称.
filter : http://www.yiiframework.com/doc/api/CFilterValidator 的别名, 使用一个 filter 转换属性.
in : http://www.yiiframework.com/doc/api/CRangeValidator 的别名, 确保了特性出现在一个预订的值列表里.
length : http://www.yiiframework.com/doc/api/CStringValidator 的别名, 确保了特性的长度在指定的范围内.
match : CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式.
numerical : http://www.yiiframework.com/doc/api/CNumberValidator 的别名, 确保了特性是一个有效的数字.
required : http://www.yiiframework.com/doc/api/CRequiredValidator 的别名, 确保了特性不为空.
type : http://www.yiiframework.com/doc/api/CTypeValidator 的别名, 确保了特性为指定的数据类型.
unique : http://www.yiiframework.com/doc/api/CUniqueValidator 的别名, 确保了特性在数据表字段中是唯一的.
url : http://www.yiiframework.com/doc/api/CUrlValidator 的别名, 确保了特性是一个有效的路径
yii 验证 rulesit 分类: Yii yii 的 rules 验证 cValidator 主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
经常用到的属性有 attributes,builtInvalidators,message,on 这四个
下面是对应的验证类
- required: CRequiredValidator
- filter: CFilterValidator
- match: CRegularExpressionValidator
- email: CEmailValidator
- url: CUrlValidator
- unique: CUniqueValidator
- compare: CCompareValidator
- length: CStringValidator
- in: CRangeValidator
- numerical: CNumberValidator
- captcha: CCaptchaValidator
- type: CTypeValidator
- file: CFileValidator
- default: CDefaultValueValidator
- exist: CExistValidator
- boolean: CBooleanValidator
- date: CDateValidator
- safe: CSafeValidator
- unsafe: CUnsafeValidator
1,CRequiredValidator - 必须值验证属性
requiredValue-mixed - 所需的值
strict-boolean - 是否比较严格
实例: array('username', 'required'), 不能为空
array('username', 'required', 'requiredValue'=>'lh','message'=> 'usernmae must be lh'), 这个值必须为 lh, 如果填其他值还是会验证不过
array('username', 'required', 'requiredValue'=>'lh', 'strict'=>true), 严格验证 还可以在后面加'message'=>",'on'=> 这些
2,CFilterValidator 过滤验证属性
filter - 方法名 (调用用户自己定义的函数)
实例:
array('username', 'test') function test() { $username = $this->username; if($username != 'lh'){ $this->addError('username', 'username must be lh'); } }
使用这个方法如果你还在 array 里面写 message=>", 给出的提示信息还是你的 test 里面的. 也就是以 test 里面的错误信息为准
3,CRegularExpressionValidator -
正则验证属性 allowEmpty - 是否为空 (默认 true)
not - 是否反转的验证逻辑 (默认 false) pattern - 正则表达式匹配实例:
- // 匹配 a-z array('username', 'match', 'allowEmpty'=>true, 'pattern'=>'/[a-z]/i','message'=>'必须为字母'),
- // 匹配不是 a-z array('username', 'match', 'allowEmpty'=>true, 'not'=>true, 'pattern'=>'/[a-z]/i','message'=>'必须不是字母'),
4,CEmailValidator - 邮箱验证属性:
allowEmpty - 是否为空
allowName - 是否允许在电子邮件地址的名称
checkMx - 是否检查电子邮件地址的 MX 记录
checkPort - 是否要检查端口 25 的电子邮件地址
fullPattern - 正则表达式, 用来验证电子邮件地址与名称的一部分
pattern - 正则表达式,
用来验证的属性值实例: array('username', 'email', 'message'=>'必须为电子邮箱', 'pattern'=>'/[a-z]/i'),
5,CUrlValidator - url 验证属性:
allowEmpty - 是否为空
defaultScheme - 默认的 URI 方案
pattern - 正则表达式
validSchemes - 清单应视为有效的 URI 计划.
实例:
- array('username', 'url', 'message'=>'must url'),
- array('username', 'url', 'defaultScheme'=>'http://www.baidu.com'),
6,CUniqueValidator - 唯一性验证属性:
allowEmpty - 是否为空
attributeName - 属性名称
caseSensitive - 区分大小写
className - 类名
criteria - 额外的查询条件
实例:
- array('username', 'unique', 'message'=>'该记录存在'),
- array('username', 'unique', 'caseSensitive'=>false, 'message'=>'该记录存在'),
7,CCompareValidator - 比较验证属性:
allowEmpty - 是否为空
compareAttribute - 需要比较的属性
compareValue - 比较的值
operator - 比较运算符
strict - 严格验证 (值和类型都要相等)
实例: // 与某个值比较 array('username', 'compare', 'compareValue'=>'10,'operator'=>'>','message'=>'必须大于 10),
// 与某个提交的属性比较 array('username', 'compare', 'compareAttribute'=>'password', 'operator'=>'>', 'message'=>'必须大于 password'),
8,CStringValidator - 字符串验证属性:
allowEmpty - 是否为空
encoding - 编码
is - 确切的长度
max - 最大长度
min - 最小长度
tooLong - 定义值太大的错误
tooShort - 定义最小长度的错误
实例: array('username', 'length', 'max'=>10, 'min'=>5, 'tooLong'=>'太长了', 'tooShort'=>'太短了'),
array('username', 'length', 'is'=>5, 'message'=>'长度必须为 5),
9,CRangeValidator - 在某个范围内属性:
allowEmpty - 是否为空
not - 是否反转的验证逻辑.
range - array 范围
strict - 严格验证 (类型和值都要一样)
实例: array('username', 'in', 'range'=>array(1,2,3,4,5), 'message'=>'must in 1 2 3 4 5),
array('username', 'in', 'not'=>true, 'range'=>array(1,2,3,4,5), 'message'=>'must not in 1 2 3 4 5),
10,CNumberValidator - 数字验证属性:
allowEmpty - 是否为空
integerOnly - 整数
integerPattern - 正则表达式匹配整数
max - 最大值
min - 最小值
numberPattern - 匹配号码
tooBig - 值太大时的错误提示
tooSmall - 值太小时的错误提示
实例: array('username', 'numerical', 'integerOnly'=>true, 'message'=>'must be int'),
array('username', 'numerical', 'integerOnly'=>true, 'message'=>'must be int', 'max'=>100, 'min'=>10, 'tooBig'=>'is too big', 'tooSmall'=>'is too small'),
11,CCaptchaValidator - 验证码验证属性:
allowEmpty - 是否为空
caseSensitive - 区分大小写
12,CTypeValidator - 类型验证属性:
allowEmpty - 是否为空
dateFormat - 日期应遵循的格式模式 ('MM/dd/yyyy')
datetimeFormat - 日期时间应遵循的格式模式 ('MM/dd/yyyy hh:mm')
timeFormat - 时间应遵循的格式模式 ('hh:mm')
type - 类型'string', 'integer', 'float', 'array', 'date', 'time' and 'datetime'
实例: array('username', 'type', 'dateFormat'=>'MM/dd/yyyy', 'type'=>'date'),
13,CFileValidator - 文件验证属性:
allowEmpty - 是否为空
maxFiles - 最大文件数
maxSize - 文件的最大值
minSize - 最小值
tooLarge - 太大时的错误信息
tooMany - 太多时的错误信息
tooSmall - 太小时的错误信息
types - 允许的文件扩展名
wrongType - 扩展名错误时给出的错误信息
14,CDefaultValueValidator - 默认值属性:
setOnEmpty - 设置为空
value - 默认值
实例: array('username', 'default', 'setOnEmpty'=>true, 'value'=>'lh'),
15,CExistValidator - 是否存在属性:
allowEmpty = 是否为空
attributeName - 属性名称
className - 类名
criteria - 标准
16,CBooleanValidator - 布尔类型验证属性:
allowEmpty - 是否为空
falseValue - 错误状态的值
strict - 严格验证
trueValue - 真实状态的值
实例: array('username', 'boolean', 'trueValue'=>1, 'falseValue'=>-1, 'message'=>'the value must be 1 or -1),
17,CDateValidator - 日期验证属性:
allowEmpty - 是否为空
format - 日期值应遵循的格式模式
timestampAttribute - 接收解析结果的属性名称
实例: array('username', 'date', 'format'=>'MM-dd-yyyy','message'=>'must be MM-dd-yyyy'),
来源: http://www.taocms.org/990.html