Yii2验证器(Validator)用法分析


Posted in PHP onJuly 23, 2016

本文实例讲述了Yii2验证器(Validator)用法。分享给大家供大家参考,具体如下:

先看一下验证器的使用。

public function rules()
{
  return [
    [['email', 'password'], 'required'],
    ['password', 'string', 'min'=>6],
  ];
}

如上所示,验证器主要使用在rules里面,对当前model里面的属性值进行验证以检查是否满足某种要求。

验证器使用格式:

书写格式为:[需要验证的属性,验证器名称,验证器参数]。

如果需要验证的属性为多个可用数组,如果为一个属性可用字符串也可用数组来表示。

每个属性都可以有多个验证器,如上面的password使用了 required和string两个验证器。

常用验证器:

Yii2已经内置了一些常用的验证器。所有的验证器都从基类yii\validators\Validator继承实现。我大概总结下有这么几类。

数字相关:

integer——整数
用来检测属性值是否为整数,以及最大、最小值检测等。(yii\validators\NumberValidator)

double——浮点
用来检测属性值是否为浮点数,即小数。(yii\validators\NumberValidator)

number——数字
这个和上面的double完全相同,只是用了2个名称。(yii\validators\NumberValidator)

格式相关:

date——日期
检验属性值是否为正确的日期格式。(yii\validators\DateValidator)

email——邮件
检测属性值是否是正确的电子邮件格式。(yii\validators\EmailValidator)

url——URL
用来判断属性值是否是正确的url地址。(yii\validators\UrlValidator)

对值进行函数处理:

filter——过滤器
这个是对属性值进行加工处理的。如对属性值加前缀、替换特定的字符串等等。(yii\validators\FilterValidator)

trim——裁边
这个是对属性值进行加工处理的。只是去掉字符串两侧的空格、或指定的字符串。(yii\validators\FilterValidator)

上传文件验证:

file——文件
这个主要是对上传的文件进行验证,如格式、大小等。(yii\validators\FileValidator)

image——图片
这个和上面的file验证器差不多,不过是专门用来验证图片的。(yii\validators\ImageValidator)

判断比较:

compare——比较
用来对两个属性值进行比较,如相等、大于、小于比较等。(yii\validators\CompareValidator)

in——包含(范围)
用来检测属性值是否包含在指定的数组中。(yii\validators\RangeValidator)

exist——存在
用来检测在数据表中是否已经存在此属性值。(yii\validators\ExistValidator)

unique——唯一性
这个和exist差不多,用来检测值是否是唯一。(yii\validators\UniqueValidator)

string——字符串
对属性值进行长度判断,如最大长度、最短长度等。(yii\validators\StringValidator)

boolean——布尔型
用来检查属性的值是否为布尔值。(yii\validators\BooleanValidator)

default——默认值
这个是用来给属性设置默认值的。如当属性值为null的时候,给它设置为 空的默认值。(yii\validators\DefaultValueValidator)

required——必填
这个用来检查属性值是否为空。(yii\validators\RequiredValidator)

captcha——验证码
这个主要是在界面使用验证码的时候对验证码进行验证的。(yii\captcha\CaptchaValidator)

match——正则表达式
这个就比较强大了,用来检测属性值是否匹配给出的正则。上面所列出的基本都可以用这个实现。(yii\validators\RegularExpressionValidator)

其它:

safe——安全
这个不进行验证,仅仅用来指定属性值是安全的。(yii\validators\SafeValidator)

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
php实现微信模板消息推送
Mar 30 PHP
php探针不显示内存解决方法
Sep 17 PHP
php弹出提示框的是实例写法
Sep 26 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
Jul 23 #PHP
Yii2简单实现多语言配置的方法
Jul 23 #PHP
yii2控制器Controller Ajax操作示例
Jul 23 #PHP
PHP实现清除MySQL死连接的方法
Jul 23 #PHP
php实现批量修改文件名称的方法
Jul 23 #PHP
golang与PHP输出excel示例
Jul 22 #PHP
PHP微信支付实例解析
Jul 22 #PHP
You might like
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
PHP反射机制用法实例
2014/08/28 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
Python的标准模块包json详解
2017/03/13 Python
基于python实现聊天室程序
2018/07/27 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
学年自我鉴定
2014/01/16 职场文书
上课迟到检讨书
2014/02/19 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
小学生作文评语集锦
2014/12/25 职场文书
工作会议通知
2015/04/15 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python