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部分常见问题总结
Oct 09 PHP
怎样在UNIX系统下安装MySQL
Oct 09 PHP
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
PHP+APACHE实现网址伪静态
Feb 22 PHP
php采集中国代理服务器网的方法
Jun 16 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
Laravel使用原生sql语句并调用的方法
Oct 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 图像尺寸调整代码
2010/05/26 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Python常见数据结构详解
2014/07/24 Python
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python 导入文件过程图解
2019/10/15 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
房产代理公证处委托书
2014/04/04 职场文书
大学生村官演讲稿
2014/04/25 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
中秋晚会策划方案
2014/06/12 职场文书
党内外群众意见范文
2015/06/02 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python