【发布时间】:2015-07-18 22:34:30
【问题描述】:
创建的模块 “论坛” - 与 here 完全一样。然后创建嵌套模块“admin”:
//"Module.php" in '@app/modules/forum'
namespace app\modules\forum;
class Module extends \yii\base\Module {
public function init() {
parent::init();
\Yii::configure($this, require(__DIR__ . '/config.php'));
$this->modules = [
'admin' => [
// here is my nested module
'class' => 'app\modules\forum\modules\admin\Module',
],
];
}
}
还创建了一个非嵌套模块“games”(以相同的方式)并写在“web.php”(主配置文件)中:
'modules' => [
'forum' => [
'class' => 'app\modules\forum\Module',
],
'games' => [
'class' => 'app\modules\games\Module',
],
'admin' => [
'class' => 'app\modules\forum\modules\admin\Module',
],
],
但是当我尝试输出时:
// codeline is written in application view, not in module view
var_dump(array_keys(\Yii::$app->loadedModules));
我只看到了这些模块:
array(4) {
string(19) "yii\web\Application"
string(16) "yii\debug\Module"
string(14) "yii\gii\Module"
string(24) "app\modules\forum\Module"
}
"Games" 和嵌套的"admin" 模块不存在!虽然doc 说:
$loadedModules 属性保存一个加载模块的列表,包括直接子模块和嵌套模块,由它们的类名索引。
但我只能获得 "forum" 我自己创建的模块。我理解错了什么?
【问题讨论】:
标签: php yii2 yii-modules