为什么在自定义 Hubhub 模块中找不到小部件类

问题描述

我正在一个名为资源的自定义模块中开发一个小部件,我已经编写了一个小部件 ResourcesMenu。它有一个名称空间 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','User Videos'),'url' => ['/resources/index/videos'],'videos')
        ]));

        parent::init();
    }

}

但是在 index.PHP 视图文件中, 导致“错误:找不到类 'humhub\modules\resources\widgets\ResourcesMenu'”

解决方法

如果我添加一个包含语句,它会找到类文件:

include "protected/modules/resources/widgets/ResourcesMenu.php";

这就是我必须做的。