Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2 在视图中包含帮助器类_Yii2_Helper_Autoload - Fatal编程技术网

Yii2 在视图中包含帮助器类

Yii2 在视图中包含帮助器类,yii2,helper,autoload,Yii2,Helper,Autoload,我正在研究一个要求,即我必须将我的视图中使用的所有常用方法(如分页等)包括到我的所有视图中。为此,我认为helper文件很有用,并在common\helpers\目录中创建了helper文件,文件名为common。我在视图文件中使用此帮助文件时遇到困难 我已将此帮助文件作为 use common\helpers\Common; 当我打开页面时,我得到的错误是“Class'common\helpers\common'notfound” 我的助手文件:Common.php namespace co

我正在研究一个要求,即我必须将我的视图中使用的所有常用方法(如分页等)包括到我的所有视图中。为此,我认为helper文件很有用,并在
common\helpers\
目录中创建了helper文件,文件名为
common
。我在视图文件中使用此帮助文件时遇到困难

我已将此帮助文件作为

use common\helpers\Common;
当我打开页面时,我得到的错误是“Class'common\helpers\common'notfound”

我的助手文件:Common.php

namespace common\helpers;
class Common
{
  protected $_file;
  protected $_data = array();

  public function __construct($file)
  {
    $this->_file = $file;
  }
  public static function getCommonHtml($id=NULL)
  {
   ----
   ----
  }
  -----
  --- Some other methods---
  -----
}

我在谷歌上搜索了一下,找到了一些解决方案,但都不管用

您需要在
composer.json
中声明新名称空间:

"autoload": {
    "psr-4": {
        ...
        "common\\": "common/"
    }
},
跑步:

composer dump-autoload

或者,您可以为新名称空间声明别名,以便Yii autoloader处理它(如中所示):


但Yii autoloader将在Yii 2.1中删除,因此我将坚持使用composer的方式(或者两者都使用-alias可能不仅对自动加载有用)。

您在
公共
命名空间中还有其他类吗?它们工作了吗?不,这是我创建的第一个helper类可以是公共的保留字吗?可能是您的文件夹名为“helper”吗?有过几次这个问题……我尝试了您的解决方案,我已经将您的代码添加到我的composer.json并运行了命令
composer dump autoload
,但它显示异常为
“[Seld\JsonLint\parsingeexception]”,/composer.json“第80行不包含有效的json解析错误”
您的
composer.json
中有语法错误。您可以使用来验证其内容。顺便说一句:请确保从json中删除这三个点-这是唯一一个将其添加到现有自动加载规则中的示例。
Yii::setAlias('@common', dirname(__DIR__))