3

我正在尝试定义嵌套模块,但在教程中找不到任何完整的解释。

我有一个模块admin,我想在其中添加另一个模块imgManager,这是我的目录结构:

protected
    ...
    modules
        admin
           ...
           modules
                imgManager
           ...
    ...

我在我的主配置文件中定义了嵌套模块,如下所示:

'modules'=>array(
    ...
            'admin'=> array(
                'modules'=>array( 
                    'imgManager' => array(
                        'import'=>array('imgManager.*','imgManager.components.*'),
                        'layout'=>'application.views.layouts.column1',
                        'upload_directory'=>'gal_images',
                        'max_file_number' => '10',//max number of files for bulk upload.
                        'max_file_size' => '1mb',
                          ),
                    ),
            ),      
),

这是我的 urlManager:

'components'=>array(
    ...
    'urlManager'=>array(
        'urlFormat'=>'path',
                    'showScriptName'=>false,
        'rules'=>array(
                     'admin'=>'admin',
                     'admin/<controller:\w+>'=>'admin/<controller>',
                     'admin/<controller:\w+>/<action:\w+>'=>'admin/<controller>/<action>',

            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

        ),
    ),

我需要像这样访问这个嵌套模块:mydomain.com/admin/imgManager但我得到Error 404 Unable to resolve the request "admin/imgManager".了我在哪里做错了?

4

1 回答 1

4

我还必须在这里定义模块:

class AdminModule extends CWebModule
{
     public function init()
     {
           ...
           $this->setModules(array('imgModule'));
         }
         ...
}
于 2012-06-18T12:41:01.967 回答