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 相关文章推荐
mysql 搜索之简单应用
Apr 27 PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP token验证生成原理实例分析
Jun 05 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 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求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
js实现五星评价功能
2017/03/08 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python标准库与第三方库详解
2014/07/22 Python
python数据结构之链表的实例讲解
2017/07/25 Python
python绘制立方体的方法
2018/07/02 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
Django框架模板用法入门教程
2019/11/04 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
办公室岗位职责
2014/02/12 职场文书
安全生产计划书
2014/05/04 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
担保书格式范文
2015/09/22 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫