Создайте правило модуля urlManager в Yii - PullRequest
1 голос
/ 06 сентября 2011

Я пытаюсь настроить модуль, чтобы любые действия, вызываемые без контроллера, выполнялись в DefaultController. Мне удалось заставить это работать, добавив правило urlManager в файл конфигурации моего сайта, который перенаправляет на соответствующий контроллер.

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

Это работает нормально, но я бы предпочел, чтобы правило содержалось в модуле (либо в Module.php), либо в части модулей файла конфигурации.

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

Есть ли способ сделать это?

1 Ответ

1 голос
/ 06 сентября 2011

Поскольку большая часть конфигурационного файла представляет собой большой массив, было бы сложно разбить правила на разные части.Вы можете создать только массив правил программно за пределами блока конфигурации, и тогда ваша конфигурация urlManager будет выглядеть примерно так:

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

Существует также метод CUrlManager :: addRules , но вы бычтобы увидеть, будет ли место, куда вы хотите поместить, работать с процессом начальной загрузки.

...