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学习之PHP运算符
Oct 09 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php精确的统计在线人数的方法
Oct 21 PHP
分享php多功能图片处理类
May 15 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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中spl_autoload_register函数的用法总结
2013/11/07 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
vue实现模态框的通用写法推荐
2018/02/26 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
python显示生日是星期几的方法
2015/05/27 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
python多线程抽象编程模型详解
2019/03/20 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
会议邀请函范文
2014/01/09 职场文书
小学开学典礼主持词
2014/03/19 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
初中教师个人总结
2015/02/10 职场文书
队名及霸气口号大全
2015/12/25 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技