在Yii中创建模块urlManager规则

时间:2011-09-05 20:48:14

标签: module yii

我正在尝试设置一个模块,因此在没有控制器的情况下调用的任何操作都将在DefaultController上执行。我已经设法通过在我的站点配置文件中添加urlManager规则来重定向到适当的控制器来实现此功能。

'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>array(
        ...
        'module/'=>'module/default/',
        ...
    ),
    'showScriptName'=>false,
),

这很好用,但我宁愿让规则包含在模块中(在< Module> Module.php中)或配置文件的模块部分。

// included modules
'modules'=>array(
    'module',
),

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

由于大多数配置文件只是一个大数组,因此很难将规则分解到不同的地方。您可以在config块之外以编程方式创建规则数组,然后您的urlManager配置看起来像:

'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>$rules,
    'showScriptName'=>false,

还有一个CUrlManager::addRules方法,但你必须看看你想把它放在哪里才能用于引导过程。