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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 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
php数组的概述及分类与声明代码演示
2013/02/26 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
进一步了解Python中的XML 工具
2015/04/13 Python
python自动zip压缩目录的方法
2015/06/28 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python实现数值积分方式
2019/11/20 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python pymsql模块的使用
2020/09/07 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
会计专业毕业生自我鉴定
2013/10/29 职场文书
书法比赛获奖感言
2014/02/10 职场文书
捐款倡议书
2014/04/14 职场文书
安全协议书范本
2014/04/21 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
经验交流材料格式
2014/12/30 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
禁毒心得体会范文
2016/01/15 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书