YII:如果有GET参数,如何实现不同的路由?
在Yii URL管理器中,如果附加了GET参数,我想为URL定义不同的路由。例如,URL“shopping wizard/”应转到route shopping wizard/索引,URL“shopping wizard/?answer=10”应转到route shopping wizard/结果 我尝试了以下规则:YII:如果有GET参数,如何实现不同的路由?,yii,yii-url-manager,Yii,Yii Url Manager,在Yii URL管理器中,如果附加了GET参数,我想为URL定义不同的路由。例如,URL“shopping wizard/”应转到route shopping wizard/索引,URL“shopping wizard/?answer=10”应转到route shopping wizard/结果 我尝试了以下规则: 'urlManager'=>array( 'rules'=>array( 'shopping-wizard/?answer=<answer&
'urlManager'=>array(
'rules'=>array(
'shopping-wizard/?answer=<answer>' => 'shoppingWizard/result',
'shopping-wizard/' => 'shoppingWizard/index',
),
),
'urlManager'=>数组(
'规则'=>数组(
“购物向导/?答案=”=>“购物向导/结果”,
“购物向导/”=>“购物向导/索引”,
),
),
这不起作用,因为CUrlRule::parseUrl()会在模式中添加一个尾随斜杠。由于SEO原因,我的带有参数的URL可能没有尾随斜杠
它确实可以与URL规则组件一起工作,但是有没有更简单的方法呢?没有单独的组件?您可以使用如下规则:
'urlManager'=>array(
'rules'=>array(
'shopping-wizard/<answer:\d+>' => 'shoppingWizard/result', //d+ - digits only
'shopping-wizard/' => 'shoppingWizard/index',
),
),
public function actionResult($answer) {
...
}