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 相关文章推荐
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
php 注释规范
Mar 29 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
php实现读取手机客户端浏览器的类
Jan 09 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
zf框架的校验器InArray使用示例
2014/03/13 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP框架性能测试报告
2016/05/08 PHP
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python类属性的延迟计算
2016/10/22 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Python解析json代码实例解析
2019/11/25 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
医学专业毕业生个人求职信
2013/12/25 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
医院党员公开承诺书
2014/08/30 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
pycharm无法安装cv2模块问题
2022/05/20 Python