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 获取可变函数参数的函数
Aug 26 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
PHP 柱状图实现代码
Dec 04 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php数组键名技巧小结
Feb 17 PHP
php提交表单发送邮件的方法
Mar 20 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 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
基于mysql的bbs设计(五)
2006/10/09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php实现可运算的验证码
2015/11/10 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
js正则相关知识点专题
2018/05/10 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
python pandas生成时间列表
2019/06/29 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
python3让print输出不换行的方法
2020/08/24 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
《灰雀》教学反思
2016/02/19 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python