Yii2 模块嵌套配置

模块结构

在Yii2 中模块是能够无限级嵌套的,也就是说,模块能够包含另外一个包含模块的模块,咱们称前者为父模块,后者为子模块, 子模块必须在父模块的yiibaseModule::modules属性中申明,例如:
在Yii2的advanced版本的rest-api下创建嵌套模块,在forum模块(父模块)下嵌入admin模块(子模块)
api下的modules的文件结构以下php

--api
----modules
------forum(父模块)
--------Module.php
--------controllers
--------models
--------admin(子模块)
----------Module.php
----------models
----------controllers

父模块的配置

forum下的Module.php须要修改init方法api

namespace api\modules\forum;
    
    class Module extends \yii\base\Module
    {
        public $controllerNamespace = 'api\modules\forum\controllers';
        public function init()
        {
            parent::init();
    
            $this->modules = [
                'admin' => [
                    // 此处应考虑使用一个更短的命名空间
                    'class' => 'api\modules\forum\admin\Module',
                ],
            ];
        }
    }

子模块的配置

admin下的Module.phpyii

namespace api\modules\forum\admin;

class Module extends \yii\base\Module
{
    public $controllerNamespace = 'api\modules\forum\admin\controllers';
    public function init()
    {
        parent::init();
     //     \Yii::configure($this, require(__DIR__ . '/config.php'));
    }
}

模块路由

在嵌套模块中的控制器,它的路由应包含它全部祖先模块的ID,例如forum/admin/default/index 表明 在模块forum中子模块admin中default控制器的index操做。ide

参考文章:http://www.yiichina.com/doc/g...ui

相关文章
相关标签/搜索