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+DBM的同学录程序(4)
Oct 09 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
php 邮件发送问题解决
Mar 22 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php无序树实现方法
Jul 28 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
php中的explode()函数实例介绍
Jan 18 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 PHP
PHP与Web页面的交互示例详解一
Aug 04 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
DSP接收机前端设想
2021/03/02 无线电
PHP 中的类
2006/10/09 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
详解js的六大数据类型
2016/12/27 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
python绘制彩虹图
2019/12/16 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
交通事故委托书范本精选
2014/10/04 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
nginx配置之并发频次限制
2022/04/18 Servers