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 和 MySQL 开发的 8 个技巧
Jan 02 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
PHP遍历文件夹与文件类及处理类用法实例
Sep 23 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP实现websocket通信的方法示例
Aug 28 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
three.js 入门案例详解
2018/01/23 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
Python制作简单的网页爬虫
2015/11/22 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Django logging配置及使用详解
2019/07/23 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python把一个字符串切开的实例方法
2020/09/27 Python
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
构造方法和其他方法的区别
2016/04/26 面试题
计算机求职信
2013/12/01 职场文书
网上书店创业计划书
2014/01/12 职场文书
护校行动方案
2014/05/31 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
营业员岗位职责范本
2015/04/14 职场文书
老公出轨后的保证书
2015/05/08 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书