文档章节

yii2中自定义验证规则rules

白狼栈
 白狼栈
发布于 2016/04/18 17:55
字数 440
阅读 1081
收藏 0
点赞 1
评论 0

作者:白狼 出处: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

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

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

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

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

白狼栈
2016/10/06
27
0
在Yii中重写URL(高级版)

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

wedv
2014/02/24
0
0
yii2项目实战-用户管理之登录与注册功能实现

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

白狼栈
2016/09/09
24
0
Yii 2 —— 字段校验

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

tywali
2016/11/22
0
0
YII Framework学习教程-YII的路由

http://www.localyii.com/testwebap/index.php?r=testmod/default/index。 根据以前的知识,我们知道此url是访问的testmod module的default controller下的index action。对应的存储路径是:...

Flowf
2011/12/10
0
0
yii2增加验证码详细步骤

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

白狼栈
2016/04/25
118
0
yii里的authenticate() 和CModel的validate() 的各自的用处是什么?

LoginForm里有一个 public function authenticate($attribute,$params)UserIdentity 里有一个 public function authenticate()Cmodel里有一个 public function validate($attributes=null, $......

plugin
2015/10/26
0
0
yii2开发中19条推荐实践(阿北总结)

虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。 环境说明 服务器环境: CentOS 开发环境及IDE...

阿北2017
06/02
0
0
Yii框架官方指南系列13——基础知识:开发规范

Yii 偏爱规范胜于配置。遵循规范可使你能够创建成熟的Yii应用而不需要编写、维护复杂的配置。 当然了,在必要时,Yii 仍然可以在几乎所有的方面通过配置实现自定义。 下面我们讲解 Yii 编程中...

水露露
2014/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

eclipse SVN 项目重新定位

SVN 重新定位 1.方法一 首先:在Eclipse中选择Windows-> Show View->others 就会出现【SVN资源库/SVN Repositories】,选中后,点击确认; 然后:选中原有的地址,选择【重新定位/Relocate】...

qimh
13分钟前
0
0
Linux 第29课 ——Linux集群架构(下)

Linux集群架构(下) 八、DR模式搭建 8.1 准备工作 试验需求三台机器: 分发器,也叫调度器(简写为dir) 192.168.112.136 ying01 rs1 192.168.112.138 ying02 rs2 192.168.112.139 ying03 vip...

feng-01
18分钟前
0
0
轻松搭建svn版本管理工具+svnmanager管理客户端

前面的文章有写过svn版本管理工具的安装是基于svn的安装包进行安装,对于svn与apache的结合还得下svn和apache的模块进行结合过程比较繁琐,今天来介绍下通过centos的yum来安装svn能够快速安装...

javazyw
28分钟前
0
0
keepalived配置高可用集群

Linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:...

TaoXu
33分钟前
0
0
mysql联表批处理操作

1 概述 mysql中的单表增删改查操作,可以说是基本中的基本. 实际工作中,常常会遇到一些基本用法难以处理的数据操作,譬如遇到主从表甚至多级关联表的情况(如一些历史问题数据的批量处理),考虑到...

社哥
36分钟前
0
0
IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改...

kim_o
50分钟前
0
0
Google Java编程风格指南

目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合...

niithub
53分钟前
0
0
java.net.MalformedURLException异常说明

1.异常片段 Java代码中,在进行URL url = new URL(urllink)操作时,提示以下异常信息,该类异常主要问题出在参数urllink上面。 异常片段1 java.net.MalformedURLException at java.ne...

lqlm
53分钟前
1
0
CentOS7修改mysql5.6字符集

解决办法:CentOS7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家所需要的字符集,是国际编码。 具体操作如下: 1.进入MySQL [root@tianqi-01 ~]# mysql -uroot -p Enter passw...

河图再现
54分钟前
0
0
DevExpress v18.1新版亮点——WPF篇(一)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Accordion Co...

Miss_Hello_World
57分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部