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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
php中iconv函数使用方法
May 24 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
php中将一个对象保存到Session中的方法
Mar 13 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
php array_keys 返回数组的键名
Oct 25 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
php字符串函数 str类常见用法示例
May 15 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
PHP 程序员的调试技术小结
2009/11/15 PHP
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
Python内置函数OCT详解
2016/11/09 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
Python使用进程Process模块管理资源
2020/03/05 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
实习生的自我评价
2014/01/08 职场文书
初三家长会邀请函
2014/01/18 职场文书
二手房购房协议书范本
2014/10/05 职场文书
公司处罚决定书
2015/06/24 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
学校教学管理制度
2015/08/06 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL