yii менеджер URL-адресов. URL-адреса в формате пути

Я разрабатываю веб-приложение на базе Yii framework.

Я столкнулся с проблемами при попытке сделать URL-адреса sef.

Что у меня есть:

  1. конфиг настроен.

    'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'rules'=>array( // здесь размещаются правила ))

  2. Это код, который используется для тестирования:

echo $this->createUrl('site/test', array('help'=>'me')

$this - контроллер.

Если я живу массивом правил в пустой конфигурации, я получаю это /site/test/help/me. Я ожидал этого.

If

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
)

Я получаю /site/test?help=me, что также ожидается.

Но если

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    '<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>',
)

Я все еще получаю /site/test?help=me. Я ожидал увидеть /site/test/me

Кто-нибудь может мне помочь?

Заранее спасибо.


person Ruslan Polutsygan    schedule 21.05.2012    source источник


Ответы (1)


Измените порядок правил и удалите <help>. Он будет автоматически добавлен в действие. Итак, ваши правила должны выглядеть так:

'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

Порядок правил имеет значение. Сначала нужно поставить наиболее подробный.

С Уважением

person Marcin K    schedule 21.05.2012