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 相关文章推荐
批量修改RAR文件注释的php代码
Nov 20 PHP
php目录操作实例代码
Feb 21 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
分享10段PHP常用代码
Nov 11 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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调用Oracle存储过程
2006/10/09 PHP
Views rows style模板重写代码
2011/05/16 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python zip()函数用法实例分析
2018/03/17 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
创业计划书如何吸引他人眼球
2014/01/10 职场文书
副厂长岗位职责
2014/02/02 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
大学军训心得体会800字
2016/01/11 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python