我正在尝试设置一个模块,因此在没有控制器的情况下调用的任何操作都将在DefaultController上执行。我已经设法通过在我的站点配置文件中添加urlManager规则来重定向到适当的控制器来实现此功能。
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
...
'module/'=>'module/default/',
...
),
'showScriptName'=>false,
),
这很好用,但我宁愿让规则包含在模块中(在< Module> Module.php中)或配置文件的模块部分。
// included modules
'modules'=>array(
'module',
),
有没有办法实现这个目标?
答案 0 :(得分:1)
由于大多数配置文件只是一个大数组,因此很难将规则分解到不同的地方。您可以在config块之外以编程方式创建规则数组,然后您的urlManager配置看起来像:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>$rules,
'showScriptName'=>false,
还有一个CUrlManager::addRules方法,但你必须看看你想把它放在哪里才能用于引导过程。