yii2中的rules 自定义验证规则详解
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'],
];
}
/**
* 自定义验证B
*/
public function requiredByASpecial($attribute, $params)
{
if ($this->A== 1)
{
if ($this->B=== '')
$this->addError($attribute, "B的值不可以为空.");
}
}
上面的意思就是说当A等于1且B的值为空时,返回错误信息"B的值不可以为空"。
以上只是举了一个简单的例子,可以根据具体需求应用。
以上所述是小编给大家介绍的yii2 rules 验证规则的全部内容,希望对大家有所帮助!
转载于:https://www.cnblogs.com/lucky-man/p/8409599.html
yii2中的rules 自定义验证规则详解相关推荐
- layui单选框verify_layui lay-verify form表单自定义验证规则详解
虽然layui的官方文档已经是写的比较详细,但是初次使用的时候总会懵一下,这里纪录一下lay-verify自定义验证规则的时候到底放哪. html: 提交 js: form.verify({ //数组 ...
- php字段验证规则,ThinkPHP 自动验证及验证规则详解
ThinkPHP 自动验证及验证规则详解 ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证.自动验证是基于数据对象的,而大多情况下数据对象是基于 $_ ...
- Yii2中场景(scenario)和验证规则(rule) Yii2中的场景(scenario)和验证规则(rule)详解
场景,顾名思义,就是一个情景,一种场面.在yii2中也有场景,这个场景跟你所理解的场景含义差不多. 和用户有交互的系统必不可少的功能包括收集用户数据.校验和处理.实际业务中,往往还需要将数据进行持久化 ...
- 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解
一.Modsecurity规则语法示例 SecRule是ModSecurity主要的指令,用于创建安全规则.其基本语法如下: SecRule VARIABLES OPERATOR [ACTIONS] ...
- php字段验证规则,详解ThinkPHP中自动验证及验证规则
本篇文章详细介绍了thinkphp中自动验证及验证规则的方法,希望对学习thinkphp的朋友有帮助! 详解ThinkPHP中自动验证及验证规则 ThinkPHP 内置了数据对象的自动验证功能来完成模 ...
- php自动验证,ThinkPHP 自动验证及验证规则详解
ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证.自动验证是基于数据对象的,而大多情况下数据对象是基于 $_POST表单 (不是绝对的)创建的. 基本 ...
- java tomcat 404配置_在Tomcat中配置404自定义错误页面详解
一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这样的页面的, 问题的出发点是我在Struts2中定义错误页面, 在Struts2中是这 ...
- yii mysql 事务处理_Yii2中事务的使用实例代码详解
前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全 ...
- 教你三种Model(AR)中自定义验证规则的方法
2019独角兽企业重金招聘Python工程师标准>>> 各位Yii2兄弟都知道Model的rules里面可以使用自己定义的验证规则,我们今天就把自定义规则做一个总结,进行一次彻底的知 ...
最新文章
- java web自动化部署_JavaWeb项目自动化部署脚本
- JAVA 文件监控 WatchService
- datagridview 手动添加的行如何进行重载_【厚积薄发】如何规划UI图标图集
- 查看oracle中各个表空间的已使用空间和最大分配空间
- 第一行代码--笔记(3)
- scrapy-cluster scrapy集群建设
- 魔方cfop公式软件_【特别篇】最全的三阶魔方公式标记法图解汇总
- [暑期实训] 任务记录 2021-06-29
- Python网络爬虫实践简答题
- CentOS 6.8 数据库安装5.5.32
- 基于STM32F103RB的模拟液位检测告警系统(已实现)
- 下载较旧版本的VS visual studio
- 代理模式(静态代理模式、动态代理模式、cgLib代理模式、拦截器)
- golang 格式化占位符相关
- 那一天我彻夜未眠,为CSDN收藏夹添加了搜索功能
- 项目中使用completablefuture_同轴线如何当网线使用?解决改造项目中难题
- sg函数 hdu 1404 Digital Deletions
- Exception in thread “main“ java.lang.ClassCastException: test.SuperClass cannot be cast to test.SubC
- 关于小程序开发的一些资源
- Hadoop高可用集群下namenode格式化失败问题解决
热门文章
- 怎么把整个网站的代码中的一个词去掉_【杭州南牛网络】网站优化的最新优化方法...
- VMware下Centos7快速搭建vsftpd
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...
- 万事开头难,用HTML写的第一个界面,收获颇多
- 关于多条id相同,只取其中一条记录的sql语句
- 关于android 调用网页隐藏地址栏
- datagridview绑定与详细说明 (搜集)
- 第十讲:Obj-C Blocks 应用
- C# 格式化字符串 String.Format
- .net 使用阿里云RocketMQ