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 自定义验证规则详解相关推荐

  1. layui单选框verify_layui lay-verify form表单自定义验证规则详解

    虽然layui的官方文档已经是写的比较详细,但是初次使用的时候总会懵一下,这里纪录一下lay-verify自定义验证规则的时候到底放哪. html: 提交 js: form.verify({ //数组 ...

  2. php字段验证规则,ThinkPHP 自动验证及验证规则详解

    ThinkPHP 自动验证及验证规则详解 ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证.自动验证是基于数据对象的,而大多情况下数据对象是基于 $_ ...

  3. Yii2中场景(scenario)和验证规则(rule) Yii2中的场景(scenario)和验证规则(rule)详解

    场景,顾名思义,就是一个情景,一种场面.在yii2中也有场景,这个场景跟你所理解的场景含义差不多. 和用户有交互的系统必不可少的功能包括收集用户数据.校验和处理.实际业务中,往往还需要将数据进行持久化 ...

  4. 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解

    一.Modsecurity规则语法示例 SecRule是ModSecurity主要的指令,用于创建安全规则.其基本语法如下: SecRule VARIABLES OPERATOR [ACTIONS] ...

  5. php字段验证规则,详解ThinkPHP中自动验证及验证规则

    本篇文章详细介绍了thinkphp中自动验证及验证规则的方法,希望对学习thinkphp的朋友有帮助! 详解ThinkPHP中自动验证及验证规则 ThinkPHP 内置了数据对象的自动验证功能来完成模 ...

  6. php自动验证,ThinkPHP 自动验证及验证规则详解

    ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证.自动验证是基于数据对象的,而大多情况下数据对象是基于 $_POST表单 (不是绝对的)创建的. 基本 ...

  7. java tomcat 404配置_在Tomcat中配置404自定义错误页面详解

    一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这样的页面的, 问题的出发点是我在Struts2中定义错误页面, 在Struts2中是这 ...

  8. yii mysql 事务处理_Yii2中事务的使用实例代码详解

    前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全 ...

  9. 教你三种Model(AR)中自定义验证规则的方法

    2019独角兽企业重金招聘Python工程师标准>>> 各位Yii2兄弟都知道Model的rules里面可以使用自己定义的验证规则,我们今天就把自定义规则做一个总结,进行一次彻底的知 ...

最新文章

  1. java web自动化部署_JavaWeb项目自动化部署脚本
  2. JAVA 文件监控 WatchService
  3. datagridview 手动添加的行如何进行重载_【厚积薄发】如何规划UI图标图集
  4. 查看oracle中各个表空间的已使用空间和最大分配空间
  5. 第一行代码--笔记(3)
  6. scrapy-cluster scrapy集群建设
  7. 魔方cfop公式软件_【特别篇】最全的三阶魔方公式标记法图解汇总
  8. [暑期实训] 任务记录 2021-06-29
  9. Python网络爬虫实践简答题
  10. CentOS 6.8 数据库安装5.5.32
  11. 基于STM32F103RB的模拟液位检测告警系统(已实现)
  12. 下载较旧版本的VS visual studio
  13. 代理模式(静态代理模式、动态代理模式、cgLib代理模式、拦截器)
  14. golang 格式化占位符相关
  15. 那一天我彻夜未眠,为CSDN收藏夹添加了搜索功能
  16. 项目中使用completablefuture_同轴线如何当网线使用?解决改造项目中难题
  17. sg函数 hdu 1404 Digital Deletions
  18. Exception in thread “main“ java.lang.ClassCastException: test.SuperClass cannot be cast to test.SubC
  19. 关于小程序开发的一些资源
  20. Hadoop高可用集群下namenode格式化失败问题解决

热门文章

  1. 怎么把整个网站的代码中的一个词去掉_【杭州南牛网络】网站优化的最新优化方法...
  2. VMware下Centos7快速搭建vsftpd
  3. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...
  4. 万事开头难,用HTML写的第一个界面,收获颇多
  5. 关于多条id相同,只取其中一条记录的sql语句
  6. 关于android 调用网页隐藏地址栏
  7. datagridview绑定与详细说明 (搜集)
  8. 第十讲:Obj-C Blocks 应用
  9. C# 格式化字符串 String.Format
  10. .net 使用阿里云RocketMQ