【问题标题】:Yii accessing a nested moduleYii 访问嵌套模块
【发布时间】:2011-10-30 02:20:48
【问题描述】:

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

我希望在此管理模块下嵌套“权限”扩展,并能够通过 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
),

任何人,到目前为止,无论我尝试了什么,我都无法访问权限模块。当我试图获得管理员/权限时,它给了我Unable to resolve the request "admin/rights".

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

【问题讨论】:

    标签: yii rights


    【解决方案1】:

    问题可能是缺少路线吗?

    尝试添加以下内容:

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

    【讨论】:

    • 不,不走运。我启用了干净的网址并添加了该路线,但仍然得到 404
    • 实际上,是放在 main.php 还是 AdminModule.php 中?
    【解决方案2】:

    我猜你有多个rights 模块。要使用特定的(来自“更深”的层次结构),您必须声明它的类。类似的东西:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多