yii url мениджър. URL адреси във формат на пътя

Разработвам уеб приложение, базирано на Yii framework.

Сблъсквал съм се с проблеми при опитите си да направя sef url адреси.

Какво имам:

  1. config е настроен.

    '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