Yii2 在视图中包含帮助器类
我正在研究一个要求,即我必须将我的视图中使用的所有常用方法(如分页等)包括到我的所有视图中。为此,我认为helper文件很有用,并在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
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__))