yii 中RULES方法的使用

    public function rules() 
    { 
        return array( 
            array('contact','required','on'=>'edit','message'=>'联系人必须填写.'), 
            array('contact','length','on'=>'edit','min'=>2,'max'=>10,'tooShort'=>'联系人长度请控制在2-10个字符.','tooLong'=>'联系人长度请控制在2-10个字符.'), 
             
            array('tel', 'match','pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/','message' => '请输入正确的电话号码.'), 
            array('fax', 'match','pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/','message' => '请输入正确的传真号码.'), 
            array('mobile', 'match','pattern' => '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/','message' => '请输入正确的手机号码.'), 
     
            array('email','email','on'=>'edit','message'=>'邮箱输入有误.'), 
             
            array('zipcode','required','on'=>'edit','message'=>'邮编必须填写.'), 
            array('zipcode','numerical','on'=>'edit','message'=>'邮编是6位数字.'), 
            array('zipcode','length','on'=>'edit','min'=>6,'max'=>6,'tooShort'=>'邮编长度为6位数.','tooLong'=>'邮编长度为6位数.'), 
             
            array('website','url','on'=>'edit','message'=>'网址输入有误.'), 
            array('qq', 'match','pattern' => '/^[1-9]{1}[0-9]{4,11}$/','message' => '请输入正确的QQ号码.'), 
            array('msn','email','on'=>'edit','message'=>'MSN输入有误.'), 
            array('status', 'in', 'range'=>array(1,2,3)),
        ); 
    } 


以上例子:

声明验证规则,应重写此方法。 每个规则是数组具有以下结构:

array(‘attribute list’, ‘validator name’, ‘on’=>’scenario name’, …validation parameters…)

注:

*attribute list: 指定属性 (以逗号分隔) 进行验证 ;

*validator name: 指定要使用的验证程序。

on: 应执行有效性规则时,此选项指定的情形。用逗号分开不同的方案。如果未设置此选项,将在任何情况下应用规则。

以下为有效规则属性

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 的别名, 确保了特性是一个有效的路径.


 

 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/yyyyhh: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'=>'thevalue must be 1 or -1'),



17、CDateValidator  - 日期验证
属性:
      allowEmpty -是否为空  format - 日期值应遵循的格式模式
      timestampAttribute -接收解析结果的属性名称       
实例:
   array('username', 'date','format'=>'MM-dd-yyyy','message'=>'mustbe MM-dd-yyyy'),
   array('username', 'date','format'=>'MM/dd/yyyy','message'=>'mustbe MM/dd/yyyy'),


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值