在视图

时间:2018-05-28 11:18:18

标签: yii2 helper autoload

我正在制定一个要求,我必须包括所有常见方法,例如分页等,这些方法在我的视图中用于我的所有视图。为此,我认为帮助文件很有用,并在common\helpers\目录中创建了帮助文件,名称为Common作为帮助文件名。我在查看文件中使用此帮助文件时遇到了困难。

我已将此帮助文件包含在我的视图中

use common\helpers\Common;

当我打开页面时我收到的错误是" Class' common \ helpers \ Common'找不到"

我的帮助文件: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---
  -----
}

我用Google搜索了这个&得到的解决方案很少,但从未奏效。

1 个答案:

答案 0 :(得分:1)

您需要在composer.json

中声明新的命名空间
"autoload": {
    "psr-4": {
        ...
        "common\\": "common/"
    }
},

跑步:

composer dump-autoload

或者你可以为新的命名空间声明别名,所以Yii自动加载器会处理它(比如在advanced template中):

Yii::setAlias('@common', dirname(__DIR__))

但Yii自动加载器将被丢弃在Yii 2.1中,所以我会坚持使用composer-way(或者同时执行这两种操作 - 别名不仅可用于自动加载)。