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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
PHP解析html类库simple_html_dom的转码bug
May 22 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
微信API接口大全
Apr 15 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
CakePHP框架Model关联对象用法分析
Aug 04 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
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JS中表单的使用小结
2014/01/11 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
使用Python生成url短链接的方法
2015/05/04 Python
python 字典(dict)按键和值排序
2016/06/28 Python
Python实现的选择排序算法示例
2017/11/29 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Python常见数字运算操作实例小结
2019/03/22 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
客户代表自我评价范例
2013/09/24 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
建筑节能汇报材料
2014/08/22 职场文书