在视图中包含助手 class
Include helper class in view
我正在处理一项要求,即我必须将在我的视图中使用的所有常用方法(如分页等)包含到我的所有视图中。为此,我认为帮助文件很有用,并在 common\helpers\
目录中创建了名为 Common
的帮助文件作为帮助文件名。我在我的视图文件中使用这个帮助文件时遇到困难。
我已将此帮助文件包含在我的视图中作为
use common\helpers\Common;
当我打开页面时 我收到错误 "Class 'common\helpers\Common' not found"
我的帮助文件: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 自动加载器就会处理它(就像在 advanced template 中一样):
Yii::setAlias('@common', dirname(__DIR__))
但是 Yii 自动加载器将在 Yii 2.1 中被删除,所以我会坚持使用 composer-way(或者两者都做 - 别名可能不仅对自动加载有用)。
我正在处理一项要求,即我必须将在我的视图中使用的所有常用方法(如分页等)包含到我的所有视图中。为此,我认为帮助文件很有用,并在 common\helpers\
目录中创建了名为 Common
的帮助文件作为帮助文件名。我在我的视图文件中使用这个帮助文件时遇到困难。
我已将此帮助文件包含在我的视图中作为
use common\helpers\Common;
当我打开页面时 我收到错误 "Class 'common\helpers\Common' not found"
我的帮助文件: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 自动加载器就会处理它(就像在 advanced template 中一样):
Yii::setAlias('@common', dirname(__DIR__))
但是 Yii 自动加载器将在 Yii 2.1 中被删除,所以我会坚持使用 composer-way(或者两者都做 - 别名可能不仅对自动加载有用)。