Yii2 rules 常用验证规则备忘大全

PHP 投稿 23800 0 评论

Yii2 rules 常用验证规则备忘大全

以下内容记录了,php框架中的YII2框架使用rules做数据验证时常用的验证规则,以减少我们自己写数据验证消耗的时间,还挺实用,需要的小伙伴可以收藏。

required : 必须值验证属性

[['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息'];
#说明:CRequiredValidator 的别名, 确保了特性不为空.

email : 邮箱验证

['email', 'email'];
#说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址.match : 正则验证
[['字段名'],match,'pattern'=>'正则表达式','message'=>'提示信息']; 
/*正则取反*/
#说明:CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式.
[['字段名'],match,'not'=>ture,'pattern'=>'正则表达式','message'=>'提示信息'];

url : 网址

['website', 'url', 'defaultScheme' => 'http'];
#说明:CUrlValidator 的别名, 确保了特性是一个有效的路径.

captcha : 验证码

['verificationCode', 'captcha'];
#说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码.

safe : 安全

['description', 'safe'];

compare : 比较

['age', 'compare', 'compareValue' => 30, 'operator' => '>='];
#说明:compareValue(比较常量值) - operator(比较操作符)
#说明:CCompareValidator 的别名,确保了特性的值等于另一个特性或常量.

default : 默认值

['age', 'default', 'value' => null];
#说明:CDefaultValueValidator 的别名, 为特性指派了一个默认值.

exist : 存在

['username', 'exist'];
#说明:CExistValidator 的别名,确保属性值存在于指定的数据表字段中.

file : 文件

['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024];
#说明:CFileValidator 的别名, 确保了特性包含了一个上传文件的名称.

filter : 滤镜

[['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true];
#说明:CFilterValidator 的别名, 使用一个filter转换属性.

in : 范围

['level', 'in', 'range' => [1, 2, 3]];
#说明:CRangeValidator 的别名,确保了特性出现在一个预订的值列表里.

unique : 唯一性

['username', 'unique'];
#说明:CUniqueValidator 的别名,确保了特性在数据表字段中是唯一的.

integer : 整数

['age', 'integer'];

number : 数字

['salary', 'number'];

double : 双精度浮点型

['salary', 'double'];

date : 日期

[['from', 'to'], 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'];

string : 字符串

['username', 'string', 'length' => [4, 24]];

boolean : 是否为一个布尔值

['字段名', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true];
#说明:CBooleanValidator

php代码中的rules 常用验证规则写法

return array(

    //必须填写
    array('email, username, password,agree,verifyPassword,verifyCode', 'required'),

    //检查用户名是否重复
    array('email','unique','message'=>'用户名已占用'),

    //用户输入最大的字符限制
    array('email, username', 'length', 'max'=>64),
    
    //限制用户最小长度和最大长度
    array('username', 'length', 'max'=>7, 'min'=>2, 'tooLong'=>'用户名请输入长度为4-14个字符', 'tooShort'=>'用户名请输入长度为2-7个字'),

    //限制密码最小长度和最大长度
    array('password', 'length', 'max'=>22, 'min'=>6, 'tooLong'=>'密码请输入长度为6-22位字符', 'tooShort'=>'密码请输入长度为6-22位字符'),

    //判断用户输入的是否是邮件
    array('email','email','message'=>'邮箱格式错误'),

    //检查用户输入的密码是否是一样的
    array('verifyPassword', 'compare', 'compareAttribute'=>'password', 'message'=>'请再输入确认密码'),

    //检查用户是否同意协议条款
    array('agree', 'required', 'requiredValue'=>true,'message'=>'请确认是否同意隐私权协议条款'),

    //判断是否是日期格式
    array('created', 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'),

    //判断是否包含输入的字符
    array('superuser', 'in', 'range' => array(0, 1)),
	
	//正则验证器:        
    array('name','match','pattern'=>'/^[a-z0-9\-_]+$/'),
	
	//数字验证器:               
    array('id', 'numerical', 'min'=>1, 'max'=>10, 'integerOnly'=>true),
	
 	//类型验证 integer,float,string,array,date,time,datetime                 
    array('created', 'type', 'datetime'),
	
	//文件验证:        
    array('filename', 'file', 'allowEmpty'=>true, 'types'=>'zip, rar, xls, pdf, ppt','tooLarge'=>'图片不要超过800K'),

	array('url',  
		'file',    //定义为file类型  
		'allowEmpty'=>true,   
		'types'=>'jpg,png,gif,doc,docx,pdf,xls,xlsx,zip,rar,ppt,pptx',   //上传文件的类型  
		'maxSize'=>1024*1024*10,    //上传大小限制,注意不是php.ini中的上传文件大小  
		'tooLarge'=>'文件大于10M,上传失败!请上传小于10M的文件!'  
	),
);

编程笔记 » Yii2 rules 常用验证规则备忘大全

赞同 (47) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽