array(array(‘username’, ‘required’), array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12), array(‘passWord’, ‘compare’, ‘compareAttribute’=>’password2&PRime;, ‘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’=>’/^[/w/s,]+$/’, ‘message’=>’Tags can only contain word characters.’), array(‘tags’, ‘normalizeTags’), array(‘title, status’, ‘safe’, ‘on’=>’search’), );}预定义完整列表:
boolean
:CBooleanValidator的别名, 确保属性的值是CBooleanValidator::trueValue或CBooleanValidator::falseValue.
captcha
:CCaptchaValidator的别名,确保了特性的值等于CAPTCHA显示出来的验证码.
compare
:CCompareValidator的别名, 确保了特性的值等于另一个特性或常量.
email
:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址.
default
:CDefaultValueValidator的别名, 为特性指派了一个默认值.
exist
:CExistValidator的别名, 确保属性值存在于指定的数据表字段中.
file
:CFileValidator的别名, 确保了特性包含了一个上传文件的名称.
filter
:CFilterValidator的别名, 使用一个filter转换属性.
in
:CRangeValidator的别名, 确保了特性出现在一个预订的值列表里.
length
:CStringValidator的别名, 确保了特性的长度在指定的范围内.
match
:CRegularExpressionValidator的别名, 确保了特性匹配一个正则表达式.
numerical
:CNumberValidator的别名, 确保了特性是一个有效的数字.
required
:CRequiredValidator的别名, 确保了特性不为空.
type
:CTypeValidator的别名, 确保了特性为指定的数据类型.
unique
:CUniqueValidator的别名, 确保了特性在数据表字段中是唯一的.
url
:CUrlValidator的别名, 确保了特性是一个有效的路径
yii验证rulesit分类:Yiiyii的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’=>‘usernmaemustbelh’),这个值必须为lh,如果填其他值还是会验证不过
array(‘username’,‘required’,‘requiredValue’=>’lh’,‘strict’=>true),严格验证还可以在后面加‘message’=>”,’on’=>这些
2、CFilterValidator过滤验证属性
filter–方法名(调用用户自己定义的函数)
实例:
array(‘username’,‘test’)functiontest(){$username=$this->username;if($username!=‘lh’){$this->addError(‘username’,‘usernamemustbelh’);}}
使用这个方法如果你还在array里面写message=>”,给出的提示信息还是你的test里面的。也就是以test里面的错误信息为准
3、CRegularExpressionValidator-
正则验证属性allowEmpty–是否为空(默认true)
not-是否反转的验证逻辑(默认false)pattern–正则表达式匹配实例:
//匹配a-zarray(‘username’,‘match’,‘allowEmpty’=>true,‘pattern’=>’/[a-z]/i’,’message’=>’必须为字母’),
//匹配不是a-zarray(‘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’=>’musturl’),
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’=& gt;’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’=>’mustin12345′),
array(‘username’,‘in’,‘not’=>true,‘range’=>array(1,2,3,4,5),‘message’=>’mustnotin12345′),
10、CNumberValidator–数字验证属性:
allowEmpty–是否为空
integerOnly–整数
integerPattern–正则表达式匹配整数
max–最大值
min–最小值
numberPattern–匹配号码
tooBig–值太大时的错误提示
tooSmall–值太小时的错误提示
实例:array(‘username’,‘numerical’,‘integerOnly’=>true,‘message’=>’mustbeint’),
array(‘username’,‘numerical’,‘integerOnly’=>true,‘message’=>’mustbeint’,‘max’=
新闻热点
疑难解答