代码之家  ›  专栏  ›  技术社区  ›  Prasad Patel

在视图中包含帮助程序类

  •  0
  • Prasad Patel  · 技术社区  · 7 年前

    我正在研究一个需求,在这个需求中,我必须将视图中使用的所有常见方法(如分页等)包括到所有视图中。为此,我认为helper文件很有用,并在 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---
      -----
    }
    

    我在谷歌上搜索了一下,但没有什么解决方案,但它们都没起作用。

    1 回复  |  直到 7 年前
        1
  •  1
  •   rob006    7 年前

    您需要在 composer.json :

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

    以及跑步:

    composer dump-autoload
    

    或者,您可以为新名称空间声明别名,这样yii autoloader将处理它(如 advanced template ):

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

    但是yii autoloader将在yii 2.1中被丢弃,所以我将坚持作曲家的方式(或者两者都做-别名可能不仅对自动加载有用)。