Yii2框架自定义验证规则操作示例


Posted in PHP onFebruary 08, 2019

本文实例讲述了Yii2框架自定义验证规则操作。分享给大家供大家参考,具体如下:

废话不多说直接上代码

class AbcModel extends Model
{
  public $aaa;
  public $bbb;
  public $bbb;
  /**
   * 验证提交的form表单
   *
   * @return array
   */
  public function rules()
  {
    return [
      // 自定义验证
      [['aaa', 'bbb', 'ccc'], 'customValidationCityCode'],
    ];
  }
  public function customValidationCityCode($attribute, $params)
  {
    if (!isset($this->$attribute)
      || empty($this->$attribute)
      || !is_array($this->$attribute)
    ) {
      $this->addError($attribute, "值为空或不存在或类型不符合.");
      return;
    }
  }
}

上面的代码意思就是  当启用(new Abc())->validate()后就会根据rules顺序验证属性 ,而customValidationCityCode这个自定义验证方式是 有多少个需要验证的参数就会调用多少次customValidationCityCode方法 ,customValidationCityCode方法中的参数$attribute就是分别对应 aaa   bbb  ccc

Yii2框架自定义验证规则操作示例

这两个值是在yii\validators类中,主要作用分别是:

  • $skipOnError:跳过错误信息,意思就是如果有错误信息存在也会跳过
  • $skipOnEmpty:跳过值为空的属性,就算是该属性需要验证,也会跳过不验证。

yii中实例controller是利用反射机制实例化的  在yii2\vendor\yiisoft\yii2\di\Container.php文件中

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP脚本的10个技巧(5)
Oct 09 PHP
dedecms模版制作使用方法
Apr 03 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
php精度计算的问题解析
Jun 21 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 #PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 #PHP
PHP addcslashes()函数讲解
Feb 03 #PHP
PHP addslashes()函数讲解
Feb 03 #PHP
PHP simplexml_load_string()函数实例讲解
Feb 03 #PHP
PHP simplexml_load_file()函数讲解
Feb 03 #PHP
PHP simplexml_import_dom()函数讲解
Feb 03 #PHP
You might like
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
PHP错误机制知识汇总
2016/03/24 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
javascript 验证日期的函数
2010/03/18 Javascript
js 函数的副作用分析
2011/08/23 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
关于vue面试题汇总
2018/03/20 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
pytorch进行上采样的种类实例
2020/02/18 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
致铅球运动员广播稿精选
2014/01/12 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
办护照工作证明
2014/10/01 职场文书
小学科学课教学反思
2016/02/23 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
Redis 限流器
2022/05/15 Redis
Apache自带的ab压力测试工具的实现
2022/07/23 Servers