2

モジュール「フォーラム」を作成しました -ここに書かれているとおりです。次に、ネストされたモジュール「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"

}

「ゲーム」とネストされた「管理者」モジュールがありません! ドキュメントは言うが:

$loadedModules プロパティは、ロードされたモジュールのリストを保持します。これには、直接の子とネストされたモジュールの両方が含まれ、クラス名でインデックスが付けられます。

しかし、自分で作成したモジュール「フォーラム」しか入手できませんでした。私は何を間違って理解していますか?

4

1 に答える 1