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 相关文章推荐
php csv操作类代码
Dec 14 PHP
PHP下常用正则表达式整理
Oct 26 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
项目中应用Redis+Php的场景
May 22 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 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 异常处理实现代码
2009/03/10 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jquery cookie插件代码类
2009/05/26 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Python爬取国外天气预报网站的方法
2015/07/10 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Python3 修改默认环境的方法
2019/02/16 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
django form和field具体方法和属性说明
2020/07/09 Python
Python如何在bool函数中取值
2020/09/21 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
应届生求职推荐信
2013/10/28 职场文书
毕业生自荐信格式
2014/03/07 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
小学母亲节活动总结
2015/02/10 职场文书
庆七一主持词
2015/06/29 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android