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 快速生成 Flash 动画的方法
Mar 06 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
Chrome Web App开发小结
Sep 04 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
php排序算法实例分析
2016/10/17 PHP
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python网络编程详解
2017/10/31 Python
Python语言快速上手学习方法
2018/12/14 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python实现滑雪游戏
2020/02/22 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Python os库常用操作代码汇总
2020/11/03 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
化学教学随笔感言
2014/02/19 职场文书
爱与责任演讲稿
2014/05/20 职场文书
师范生求职自荐信
2014/06/14 职场文书
银行招聘自荐信
2015/03/06 职场文书
主持人大赛开场白
2015/05/29 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL