YII: Как добиться другой маршрутизации, если есть параметры GET?
В менеджере URL Yii я хотел бы определить другой маршрут для URL, если есть присоединенные параметры GET. Например, URL "shopping-wizard/" должен идти по маршруту shoppingWizard/index, а URL "shopping-wizard/? Answer=10" должен идти по маршруту shoppingWizard/result.
Я пробовал следующие правила:
'urlManager'=>array(
'rules'=>array(
'shopping-wizard/?answer=<answer>' => 'shoppingWizard/result',
'shopping-wizard/' => 'shoppingWizard/index',
),
),
Это не работает, потому что CUrlRule::parseUrl() добавляет косую черту в шаблон. Мой URL с параметром может не иметь косой черты по причинам SEO.
Он работает с компонентом правила URL, но есть ли более простой способ сделать это? Без отдельного компонента?
1 ответ
Вы можете использовать правило следующим образом:
'urlManager'=>array(
'rules'=>array(
'shopping-wizard/<answer:\d+>' => 'shoppingWizard/result', //d+ - digits only
'shopping-wizard/' => 'shoppingWizard/index',
),
),
И в вашем контроллере:
public function actionResult($answer) {
...
}