モジュール「フォーラム」を作成しました -ここに書かれているとおりです。次に、ネストされたモジュール「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 プロパティは、ロードされたモジュールのリストを保持します。これには、直接の子とネストされたモジュールの両方が含まれ、クラス名でインデックスが付けられます。
しかし、自分で作成したモジュール「フォーラム」しか入手できませんでした。私は何を間違って理解していますか?