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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
php进程间通讯实例分析
Jul 11 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
php读取本地json文件的实例
Mar 07 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
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
jquery获取节点名称
2015/04/26 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
批处理与python代码混合编程的方法
2016/05/19 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python之文件读取一行一行的方法
2018/07/12 Python
python实现静态服务器
2019/09/05 Python
简单的Python人脸识别系统
2020/07/14 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
小学生十佳少年事迹材料
2014/08/20 职场文书
爱情保证书
2015/01/17 职场文书
借条如何写
2015/05/26 职场文书
同意报考证明
2015/06/17 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers