文档章节

yii2中自定义验证规则rules

白狼栈
 白狼栈
发布于 2016/04/18 17:55
字数 440
阅读 1119
收藏 1

作者:白狼 出处:http://www.manks.top/article/yii2_custom_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'],
        ];
    }

然后在该model里面去实现requiredByASpecial方法即可

   /**
     *  自定义验证B
     */
    public function requiredByASpecial($attribute, $params)
    {
        if ($this->A== 1) 
        {
            if ($this->B=== '')
                $this->addError($attribute, "B的值不可以为空.");
        }
    }

上面的意思就是说当A等于1且B的值为空时,返回错误信息"B的值不可以为空"。

以上只是举了一个简单的例子,可以根据具体需求应用。


本文转载自:http://www.manks.top/article/yii2_custom_rules

共有 人打赏支持
白狼栈
粉丝 18
博文 81
码字总数 30876
作品 0
杭州
私信 提问
yii2 model 验证规则rules 一条规则验证失败立即返回不继续验证其他字段

yii2 model 验证规则rules 一条规则验证失败立即返回不继续验证其他字段 Mode::rules(); username 为空立即返回error ,不去验证password和age。同理age如果为空,也不会去验证其他字段 不知...

Sturn
2016/07/24
372
2
yii2项目实战-访问控制过滤器ACF讲解

作者:白狼 出处:http://www.manks.top/document/yii2-filter-control.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法...

白狼栈
2016/10/06
27
0
yii2项目实战-用户管理之登录与注册功能实现

作者:白狼 出处:http://www.manks.top/document/yii2-user.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权...

白狼栈
2016/09/09
24
0
在Yii中重写URL(高级版)

前两天做了网站SEO方面的URL优化工作。 具体要求是:商品分类的URL中需要有这个分类的汉语拼音出现, 如:http://www.abc.com/category-shafa.html (之前的URL大致是这样的:http://www.abc....

wedv
2014/02/24
0
0
Yii 2 —— 字段校验

1.1 字段校验 1.1.1 简介 开发Web应用有一个很重要的原则,就是不要相信任何输入的数据,在使用之前必须要进行有效性检查,否则很有可能会引发各种安全性问题。Yii 2当然也不会忽略这个问题,...

tywali
2016/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

hbase的预region分区 脚本 经典

一、Region 概念 Region是表获取和分布的基本元素,由每个列族的一个Store组成。对象层级图如下: Table (HBase table) Region (Regions for the table) Store ...

stys35
6分钟前
0
0
Git删除分支/恢复分支

Git删除分支/恢复分支 • 删除一个已被终止的分支 如果需要删除的分支不是当前正在打开的分支,使用branch -d直接删除 git branch -d <branch_name> • 删除一个正打开的分支 如果我们在试图...

onedotdot
21分钟前
0
0
CSS学习笔记

# 1、CSS介绍 CSS 指层叠样式表 (Cascading Style Sheets),定义如何显示HTML元素。 CSS规则由两个主要的部分构成:选择器,以及一条或多条声明: p{color:red; text-align:left;} 其中p为选择...

davidwbnu
24分钟前
0
0
CTS测试流程及注意事项

一、测试前的准备 1.测试环境:在Linux系统下测试 安装SDK,JDK,ADB,Python工具包。 2.下载媒体文件包: 下载网站:https://source.android.com/compatibility/cts/downloads (在网页的最下方...

天王盖地虎626
35分钟前
3
0
技术码霸阐述——Spring Cloud Netflix:熔断器:Hystrix Clients

Netfilix创建了一个名为Hystrix的库,实现了熔断器模式。在微服务架构中,它通常有多个服务调用层。 一: 微服务图 一个底层服务的故障会引发直至用户交互层的连锁故障。在一个设定时长为“m...

java知识分子
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部