为什么在自定义 Hubhub 模块中找不到小部件 class
Why is a widget class not found in a custom Hubhub module
我正在一个名为 resources 的自定义模块中开发一个小部件,我已经编写了一个小部件 ResourcesMenu。它有一个名称 space humhub\modules\resources\widgets 并且在主视图的 index.php 文件中它使用 humhub\modules\resources\widgets\ResourcesMenu 与站点上使用的其他模块相比这似乎是正确的。
这是 ResourcesMenu.php
的代码
namespace humhub\modules\resources\widgets;
use Yii;
use humhub\modules\ui\menu\MenuLink;
use humhub\modules\ui\menu\widgets\LeftNavigation;
class ResourcesMenu extends LeftNavigation
{
public function init()
{
/** @var Module $module */
$module = Yii::$app->getModule('resources');
$this->panelTitle = Yii::t('ResourcesModule.base', '<strong>Resources</strong> menu');
$this->addEntry(new MenuLink([
'id' => 'resources-index',
'icon' => 'file',
'label' => Yii::t('ResourcesModule.base', 'All Files'),
'url' => ['/resources/index'],
'sortOrder' => 100,
'isActive' => MenuLink::isActiveState('resources', 'resources', 'index')
]));
$this->addEntry(new MenuLink([
'id' => 'resources-videos',
'icon' => 'user',
'label' => Yii::t('ResourcesModule.base', 'User Videos'),
'url' => ['/resources/index/videos'],
'sortOrder' => 100,
'isActive' => MenuLink::isActiveState('resources', 'resources', 'videos')
]));
parent::init();
}
}
但是在 index.php 视图文件中,< ? = ResourcesMenu::widget(); ? > 导致“错误:Class 'humhub\modules\resources\widgets\ResourcesMenu' 未找到”
如果我添加 include 语句,它将找到 class 文件:
include "protected/modules/resources/widgets/ResourcesMenu.php";
那是我必须做的。
我正在一个名为 resources 的自定义模块中开发一个小部件,我已经编写了一个小部件 ResourcesMenu。它有一个名称 space humhub\modules\resources\widgets 并且在主视图的 index.php 文件中它使用 humhub\modules\resources\widgets\ResourcesMenu 与站点上使用的其他模块相比这似乎是正确的。
这是 ResourcesMenu.php
的代码namespace humhub\modules\resources\widgets;
use Yii;
use humhub\modules\ui\menu\MenuLink;
use humhub\modules\ui\menu\widgets\LeftNavigation;
class ResourcesMenu extends LeftNavigation
{
public function init()
{
/** @var Module $module */
$module = Yii::$app->getModule('resources');
$this->panelTitle = Yii::t('ResourcesModule.base', '<strong>Resources</strong> menu');
$this->addEntry(new MenuLink([
'id' => 'resources-index',
'icon' => 'file',
'label' => Yii::t('ResourcesModule.base', 'All Files'),
'url' => ['/resources/index'],
'sortOrder' => 100,
'isActive' => MenuLink::isActiveState('resources', 'resources', 'index')
]));
$this->addEntry(new MenuLink([
'id' => 'resources-videos',
'icon' => 'user',
'label' => Yii::t('ResourcesModule.base', 'User Videos'),
'url' => ['/resources/index/videos'],
'sortOrder' => 100,
'isActive' => MenuLink::isActiveState('resources', 'resources', 'videos')
]));
parent::init();
}
}
但是在 index.php 视图文件中,< ? = ResourcesMenu::widget(); ? > 导致“错误:Class 'humhub\modules\resources\widgets\ResourcesMenu' 未找到”
如果我添加 include 语句,它将找到 class 文件:
include "protected/modules/resources/widgets/ResourcesMenu.php";
那是我必须做的。