Yii访问嵌套模块

时间:2011-08-18 19:36:50

标签: yii rights

我有一个管理模块,我正用于后端用户管理等...

我希望将“权利”扩展程序嵌套在此管理模块下,并且可以使用mysite.com/index.php?r=admin/rights

来访问它

显然我需要在父节点中声明子模块,所以在AdminModule init下,我设置了:

$this->setModules(array(
    'rights'=>array(
        'install'=>true, // rights - Enables the installer
        'baseUrl'=>'/admin/rights',
        'debug'=>true,
    ),
));

我也尝试从AdminModule init导入:(对此无能为力)

$this->setImport(array(
    'admin.models.*',
    'admin.components.*',
    'admin.modules.rights.*',
    'admin.modules.rights.components.*',
));

我也试过在main.php配置中声明模块:

'admin'=>array(
    'modules'=>array(
        'rights'=>array(
            'install'=>true, // rights - Enables the installer
            'baseUrl'=>'/admin/rights',
            'debug'=>true,
         ),
     ),
),

甚至在那里导入它:

'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.modules.admin.*',
    'application.modules.admin.modules.rights.*', // rights
    'application.modules.admin.modules.rights.components.*', // rights
),

Anywho,无论我到目前为止尝试过什么,我都无法进入权限模块。在尝试获取管理员/权限时,它会给我Unable to resolve the request "admin/rights".

扩展程序在?r=rights处作为非嵌套模块正常工作。有任何想法吗?在处理嵌套模块时,我没有找到很多实际代码的例子。

2 个答案:

答案 0 :(得分:0)

问题可能是缺失的路线吗?

尝试添加以下内容:

<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>

答案 1 :(得分:0)

我猜你有多个rights模块。要使用特定的(从“更深层次”层次结构),您必须声明其类。这样的事情:

'admin'=>array(
    'modules'=>array(
        'rights'=>array(
            'class' => 'application.modules.admin.modules.rights.RightsModule'
         ),
     ),
),