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验证码(支持中文)
Feb 14 PHP
php继承的一个应用
Sep 06 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
PHP实现合并discuz用户
Aug 05 PHP
如何离线执行php任务
Feb 21 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 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作的文本留言本的例子(三)
2006/10/09 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
python中lambda与def用法对比实例分析
2015/04/30 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
浅谈python数据类型及类型转换
2017/12/18 Python
flask中的wtforms使用方法
2018/07/21 Python
django解决跨域请求的问题详解
2019/01/20 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
Python 复平面绘图实例
2019/11/21 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
大学生实习感言
2014/01/16 职场文书
优秀求职信范文分享
2014/01/26 职场文书
2014年新教师工作总结
2014/11/08 职场文书
员工辞退通知书
2015/04/17 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL