`

yii rules 验证实例

阅读更多
  1. public function rules()  
  2. {  
  3.     return array(  
  4.         array('project_id, type_id, status_id, owner_id, requester_id,', 'numerical', 'integerOnly'=>true),  
  5.         array('name', 'length', 'max'=>256),  
  6.         array('description', 'length', 'max'=>2000),  
  7.         array('create_time,create_user_id,update_user_id, update_time', 'safe'),  
  8.         array('id, name, description, project_id, type_id, status_id, owner_id', 'on'=>'search'),  
  9.     );  
  10. }  
  11.   
  12. //required: 必填  
  13. array('title,content','required'),  
  14.   
  15. //match: 正则表达式验证  
  16. array('birthday', 'match', 'pattern'=>'%^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$%', 'allowEmpty'=>true, 'message'=>'生日必须是年-月-日格式'),  
  17.   
  18. //email:邮箱格式验证  
  19. array('user_mail', 'email'),   
  20.   
  21. //url:URL格式验证  
  22. array('user', 'url'),   
  23.   
  24. //unique:唯一性验证  
  25. array('username', 'unique','caseSensitive'=>false,'className'=>'user','message'=>'用户名"{value}"已经被注册,请更换'),  
  26. //caseSensitive 定义大小写是否敏感  
  27.   
  28. //compare:一致性验证  
  29. array('repassword', 'compare', 'compareAttribute'=>'password','message'=>'两处输入的密码并不一致'),  
  30.   
  31. //length:长度验证   
  32.   
  33. //in: 验证此属性值在列表之中(通过range指定)。  
  34.   
  35. //numerical: 验证此属性的值是一个数字  
  36.   
  37. //captcha: 验证属性值和验证码中显示的一致  
  38. array('verifyCode','captcha'),  
  39.   
  40. //type: 验证属性的类型是否为type所指定的类型.   
  41.   
  42.   
  43. //file: 验证一个属性是否接收到一个有效的上传文件  
  44.   
  45.   
  46. //default: 属性指定默认值  
  47.   
  48.   
  49. //exist: 验证属性值在数据库中是否存在  
  50.   
  51.   
  52. //boolean: 验证布尔属性值  
  53.   
  54.   
  55. //date: 检验此属性是否描述了一个日期、时间或日期时间  
  56.   
  57.   
  58. //safe: 属性标志为在批量赋值时是安全的。  
  59.   
  60.   
  61. //unsafe: 标志为不安全,所以他们不能被批量赋值。 

 

 

二、Yii CModel.rules()方法 、validate预定义完整列表

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’=>’/^[\w\s,]+$/’,
          ’message’=>’Tags can only contain word characters.’),
      array(‘tags’, ‘normalizeTags’),
      array(‘title, status’, ‘safe’, ‘on’=>’search’),
  );
}预定义完整列表: 

 

 

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

 

分享到:
评论

相关推荐

    yii用户注册表单验证实例

    Yii框架中的CActiveRecord提供了`rules`方法来设置这些规则,常见的验证器包括`CRequiredValidator`(非空验证)、`CStringValidator`(字符串验证)、`CEmailValidator`(邮箱格式验证)等。 **视图层(View)** 视...

    Yii2验证器(Validator)用法分析

    本文实例讲述了Yii2验证器(Validator)用法。分享给大家供大家参考,具体如下: 先看一下验证器的使用。 public function rules() { return [ [['email', 'password'], 'required'], ['password', 'string', 'min...

    Yii框架数据模型的验证规则rules()被执行的方法

    本文将详细解读Yii框架中数据模型验证规则rules()的实现方法及其运行机制,帮助开发者有效地完成用户注册等表单验证。 在Yii框架中,模型的验证规则定义在模型类中的rules()方法里。这个方法通过返回一个数组来定义...

    Yii中表单用法实例详解

    模型(Model)在Yii中扮演着核心角色,它负责收集和验证用户输入的数据。对于临时性的数据,如登录表单,可以创建一个表单模型(CFormModel的子类),而对于需要持久化到数据库的数据,可以使用Active Record模型。...

    Yii数据模型中rules类验证器用法分析

    本文实例讲述了Yii数据模型中rules类验证器用法。分享给大家供大家参考,具体如下: public function rules() { return array( array('project_id, type_id, status_id, owner_id, requester_id,', 'numerical', ...

    Yii2框架数据验证操作实例详解

    Yii2通过rules()方法允许开发者定义各种数据验证规则。这些规则被模型用来验证用户提交的数据是否有效。验证规则定义在rules()方法返回的数组中,它们可以覆盖任何模型的属性。 验证规则由两个部分组成:验证器...

    在yii中新增一个用户验证的方法详解

    在Yii框架中实现用户验证机制是一个重要的环节,它可以保护网站免受未经授权的访问,同时确保只有合法用户可以进行特定操作。在本篇详解中,我们将深入探讨在Yii框架中新增一个用户验证方法的过程,并且涵盖与用户...

    Yii框架表单模型和验证用法

    Yii框架会在CValidator中根据指定的验证器名称创建具体的验证器实例,并执行相应的验证逻辑。 接下来,当有用户提交登录表单时,可以这样使用模型来验证数据: ```php $model = new LoginForm; // 创建一个登录...

    yii2 在控制器中验证请求参数的使用方法

    写api接口时一般会在控制器中简单...有么有“一劳永逸”的做法,像在 Model 中通过 rules 方法定义验证规则并实现快速验证的呢?有! 使用方法(实现效果) namespace frontend\controllers\api; use yii\web\Cont

    Yii2框架自定义验证规则操作示例

    Yii2框架自定义验证规则的知识点包括以下几个部分: 1. 验证规则的作用:在Yii2框架中,验证规则用于确保用户输入的数据满足特定的要求和格式。Yii2提供了一套灵活的验证机制,允许开发者自定义验证规则以处理各种...

    Yii2实现自定义独立验证器的方法

    当模型保存时,Yii框架会自动调用rules方法中定义的规则,并应用相应的验证器来验证模型的数据。如果数据没有通过验证,模型将不会被保存,同时错误信息会被添加到模型实例中,可以在视图中显示给用户。 以上就是...

    yii-1.1.0.r1700.zip_yii_yii1.0 model结构

    - **验证规则(Validation Rules)**:`rules()`方法定义的数据验证规则确保了输入数据的准确性和安全性。 - **业务逻辑**:模型类是实现业务逻辑的主要地方,例如计算、数据转换等。 了解和掌握Yii的模型结构对于...

    yii2.0实现验证用户名与邮箱功能

    在rules方法中,我们添加了各种规则来验证这些属性。对于username和email属性,我们首先使用'filter'规则去除非空格字符,然后用'required'规则确保它们必填。为了防止用户名和邮箱重复,我们使用'unique'规则,并...

    Yii基于CActiveForm的Ajax数据验证用法示例

    在Yii中,CActiveForm组件是用于创建动态表单的利器,它集成了数据验证、AJAX验证以及客户端验证等功能。下面我们将详细讲解如何在Yii中基于CActiveForm实现Ajax数据验证。 1. 视图中的表单定义 在视图文件中,...

    Yii框架form表单用法实例

    在Yii框架中,使用rules()方法在模型中声明验证规则,这些规则定义了数据需要满足的条件。 4. 创建控制器动作(Controller Action):控制器动作用于响应用户的请求,包括表单的提交。它负责接收模型数据并处理相应...

Global site tag (gtag.js) - Google Analytics