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 相关文章推荐
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
Laravel中间件实现原理详解
Oct 09 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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 mongodb扩展时 需要注意的事项
2013/06/18 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
详解python实现线程安全的单例模式
2018/03/05 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
求职意向书
2014/04/01 职场文书
红色故事演讲稿
2014/05/22 职场文书
群教个人对照检查材料
2014/08/20 职场文书
财产保全担保书
2015/01/20 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书