yii2中的rules 自定义验证规则详解


Posted in PHP onApril 19, 2016

yii2的一个强大之处之一就是他的Form组件,既方便又安全。有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有。

领导安排搞一个注册的功能,这家伙刷刷刷的又是百度啥啥啥好的表单样式,又是百度啥啥啥validate验证,真替这家伙捏把汗。

当然啦,废话说在前头,咱们的重点喃,是要利用ActiveForm,然后怎么去实现自定义验证规则。

先来说说场景:

条件:①、有两个字段分别是A和B ②、A有两个值分别是1和2

需求是:当用户选择的A的值等于1的时候,B的值必须填写,当A的值等于2的时候,B的值不写也没关系。其中A必选。

我们来看看用Yii2自带的rules怎么去实现

首先在其关联model上加上下面这句规则

/**
* @inheritdoc
*/
public function rules()
{
return [
[['B'], 'requiredByASpecial'],
];
}

然后在该model里面去实现requiredByASpecial方法即可

/**
* 自定义验证B
*/
public function requiredByASpecial($attribute, $params)
{
if ($this->A== 1) 
{
if ($this->B=== '')
$this->addError($attribute, "B的值不可以为空.");
}
}

上面的意思就是说当A等于1且B的值为空时,返回错误信息"B的值不可以为空"。

以上只是举了一个简单的例子,可以根据具体需求应用。

以上所述是小编给大家介绍的yii2 rules 验证规则的全部内容,希望对大家有所帮助!

PHP 相关文章推荐
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
php查看当前Session的ID实例
Mar 16 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
php中二分法查找算法实例分析
Sep 22 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 PHP
PHP序列化/对象注入漏洞分析
Apr 18 #PHP
php实现三级级联下拉框
Apr 17 #PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 #PHP
orm获取关联表里的属性值
Apr 17 #PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 #PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 #PHP
PHP6连接SQLServer2005的三部曲
Apr 15 #PHP
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
js获取系统的根路径实现介绍
2013/09/08 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
js实现图片实时时钟
2020/01/15 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
市场营销方案范文
2014/03/11 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
会计稽核岗位职责
2015/04/13 职场文书
刑事撤诉申请书
2015/05/18 职场文书
丧事答谢词大全
2015/09/30 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP
Docker部署Mysql8的实现步骤
2022/07/07 Servers