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配置心得包含MYSQL5乱码解决
Nov 20 PHP
php adodb介绍
Mar 19 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
PHP技术开发微信公众平台
Jul 22 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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
php5新改动之短标记启用方法
2008/09/11 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
python的id()函数介绍
2013/02/10 Python
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
Python实现上下文管理器的方法
2020/08/07 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
卫校毕业生个人自我鉴定
2014/04/28 职场文书
工作总结与自我评价
2014/09/18 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
《确定位置》教学反思
2016/02/18 职场文书
公司晚会主持词
2019/04/17 职场文书
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA