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.ini中文版(1)
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
php for 循环语句使用方法详细说明
May 09 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
PHP数组实例详解
Jun 26 PHP
php fread读取文件注意事项
Sep 24 PHP
php中时间函数date及常用的时间计算
May 12 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP使用递归按层级查找数据的方法
Nov 10 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
解决python删除文件的权限错误问题
2018/04/24 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
python是怎么被发明的
2020/06/15 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
幼儿园五一活动方案
2014/02/07 职场文书
化妆品促销活动总结
2015/05/07 职场文书
中学政教处工作总结
2015/08/13 职场文书