首页 > 学院 > 开发设计 > 正文

Yii CModel中rules验证规则[转]

2019-11-15 01:44:58
字体:
来源:转载
供稿:网友
Yii CModel中rules验证规则[转]

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’=

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表