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 相关文章推荐
在mysql数据库原有字段后增加新内容
Nov 26 PHP
PHP学习笔记之二
Jan 17 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
学习php中的正则表达式
Aug 17 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
实例化php类时传参的方法分析
Jun 05 PHP
PHP7 弃用功能
Mar 09 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
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
Python多进程机制实例详解
2015/07/02 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
对python中的logger模块全面讲解
2018/04/28 Python
Windows下安装Scrapy
2018/10/17 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
高中生毕业自我鉴定范文
2013/12/22 职场文书
我的梦想演讲稿
2014/04/30 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
信用卡工作证明模板
2014/09/14 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
公司员工管理制度
2015/08/04 职场文书
社区干部培训心得体会
2016/01/06 职场文书
Vue.Draggable实现交换位置
2022/04/07 Vue.js