Yii cValidator主要用法分析

yii的rules验证

cValidator主要属性
attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
经常用到的属性有  attributes, builtInvalidators,message,on这四个

下面是对应的验证类
required: CRequiredValidator
filter: CFilterValidator
match: CRegularExpressionValida tor
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、CRegularExpressionValida tor -正则验证
属性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'),
       array('username', 'date', 'format'=>'MM/dd/yyyy','message'=>'must be MM/dd/yyyy'),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值