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安全编程之加密功能
Oct 09 PHP
php4的session功能评述(三)
Oct 09 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP实现的XXTEA加密解密算法示例
Aug 28 PHP
php实现的生成排列算法示例
Jul 25 PHP
详解PHP中curl_multi并发的实现
Jun 08 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.2时间相差8小时
2007/01/15 PHP
php中的MVC模式运用技巧
2007/05/03 PHP
php一些公用函数的集合
2008/03/27 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
PHP实现文件上传与下载
2020/08/28 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
javascript表单验证大全
2015/08/12 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
通知格式
2015/04/27 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
详解Java实现数据结构之并查集
2021/06/23 Java/Android
python异步的ASGI与Fast Api实现
2021/07/16 Python
TS 类型兼容教程示例详解
2022/09/23 Javascript