Yii CModel中rules验证规则
array(
array(‘username’, ‘required’),
array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12),
array(‘password’, ‘compare’, ‘compareAttribute’=>’password2’, ‘on’=>’register’),
array(‘password’, ‘authenticate’, ‘on’=>’login’),
);
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 分类: 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 CModel中rules验证规则的更多相关文章
- Yii CModel中rules验证规则[转]
array( array(‘username’, ‘required’), array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12), array( ...
- Yii CModel中rules验证 获取错误信息
在model中定义 public function rules(){ return array( array('Name,Email','required'), array('Email','uniq ...
- Yii2中rules验证规则
required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...
- yii2 rules 验证规则
yii2 框架定义的约束 public $builtInValidators = [ 'boolean' => 'yii\validators\BooleanValidator', 'capt ...
- Yii2 rules验证规则
Rules验证规则: required : 必须值验证属性||CRequiredValidator 的别名, 确保了特性不为空. [['字段名1','字段名2'],required] //字段 ...
- [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则
目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...
- yii2中自定义验证规则rules
作者:白狼 出处:www.manks.top/article/yii2_custom_rules 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...
- Model中的验证规则
一.能够使用Model的Attribute进行服务端数据验证 本文目录 一.概述 二.MVC提供的常用上下文 三.自定义正则表达式验证 一.概述 为了确保数据的安全性,由Client发送到服务端的每一 ...
- Yii 中比较常用的rules验证规则记录
查看代码 打印 01 return array( 02 03 //必须填写 04 array('email, username, password,agree,verifyPa ...
随机推荐
- 开发板挂载nfs服务器错误解析
输入mount -t nfs 192.168.1.110:/home/work /mnt,这时可能会出现 mount.nfs:access denied by server while mountin ...
- POJ 2409 Let it Bead(polay计数)
题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于 ...
- C++中变量自动初始化的问题
C++中有一些变量在如果没有赋初值会被编译器自动赋值为0,但有的变量又不会这样,而得到一个随机数,下面具体讨论一下: 首先看一下C++中的几个存储区:1.栈区:由编译器自动分配释放 ,存放函数的参数值 ...
- VirtualBox虚拟机剪贴板共享
默认VirtualBox的虚拟机和主机的剪贴板和拖拽不会共享的,因此需要我们进行处理. 一般情况下,我们选中虚拟机,然后设置剪贴板和拖拽为双向就ok了,但是我这里并没有好,设置如下图: 当我设置上面的 ...
- Android提供的LruCache类简介
分类: Android开发 2013-02-06 15:26 26733人阅读 评论(10) 收藏 举报 package android.util; import import /** * A cac ...
- Chosen中选择项的更新
Chosen 选择项的动态修改/更新 如果你需要去动态更新select选择框里的选择项,你需要通知Chosen去响应这个变动,你需要在这个选项框是触发一个"liszt:updated&quo ...
- Math.sqrt
java.lang.Math.sqrt(double a) 返回正确舍入的一个double值的正平方根.特殊情况: 如果参数是NaN或小于为零,那么结果是NaN. 如果参数是正无穷大,那么结果为正无穷 ...
- CodeForces 489D Unbearable Controversy of Being
题意: 给出一个n个节点m条边的有向图,求如图所示的菱形的个数. 这四个节点必须直接相邻,菱形之间不区分节点b.d的个数. 分析: 我们枚举每个a和c,然后求出所有满足a邻接t且t邻接c的节点的个数记 ...
- BNU 4188 Superprime Rib【BFS】
题意:给出n,输出n位超级质数,超级质数的定义为“依次去掉右边一位后仍然为质数的数” 因为一个n位质数去掉右边一位数之后仍然为质数,说明它是由n-1位超级质数演变而来的, 同理,n-1位超级质数也由n ...
- LeetCode: Sqrt
Title: Implement int sqrt(int x). Compute and return the square root of x. 思路:这个平方根肯定是在[1,x]之间,所以在这个 ...