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'),
cValidator主要属性
attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
经常用到的属性有 attributes, builtInvalidators,message,on这四个
下面是对应的验证类
required: CRequiredValidator
filter: CFilterValidator
match: CRegularExpressionValida
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-是否比较严格
实例:
2、CFilterValidator 过滤验证
属性 filter - 方法名
实例:
3、CRegularExpressionValida
属性allowEmpty - 是否为空(默认true) not-是否反转的验证逻辑(默认false)
实例:
4、CEmailValidator --邮箱验证
属性:allowEmpty - 是否为空 allowName - 是否允许在电子邮件地址的名称
实例:
5、CUrlValidator - url验证
属性:allowEmpty - 是否为空
实例:
6、CUniqueValidator - 唯一性验证
属性:allowEmpty - 是否为空 attributeName - 属性名称
实例:
7、CCompareValidator - 比较验证
属性:
实例:
8、CStringValidator - 字符串验证
属性:
实例:
9、CRangeValidator - 在某个范围内
属性:
实例:
10、CNumberValidator - 数字验证
属性:
实例:
11、CCaptchaValidator - 验证码验证
属性:
12、CTypeValidator - 类型验证
属性:
实例:
13、CFileValidator - 文件验证
属性:
14、CDefaultValueValidator - 默认值
属性:
实例:
15、CExistValidator - 是否存在
属性:
16、CBooleanValidator - 布尔类型验证
属性:
实例:
17、CDateValidator
属性:
实例: