Yii 1.1:路由中的静态参数

时间:2018-12-16 20:10:17

标签: url yii url-rewriting url-routing yii1.x

出于美化的目的,我有一组URL模式,例如:

/alpha-action/...
/beta-action/...
/gamma-action/...
/delta-action/...

它们由相同的控制器处理,我希望通过相同的操作进行处理,

function actionAlphabet($letter, $param1)

我想要的是将 static 参数传递给依赖URL的操作(由语法构成):

'alpha-action/<param1:.*>' => 'site/alphabet('alpha')',
'beta-action/<param1:.*>'  => 'site/alphabet('beta')',
'gamma-action/<param1:.*>' => 'site/alphabet('gamma')',
'delta-action/<param1:.*>' => 'site/alphabet('delta')'

在Yii 1.1中可行吗?

1 个答案:

答案 0 :(得分:1)

我的情况是,您可以将params用作模式的一部分,并且仅使用一条规则:

'<letter:\w+>-action/<param1:.*>' => 'site/alphabet',

但是,如果您确实要创建单独的规则,则可以使用defaultParams属性为模式中不可用的参数指定默认值:

'alpha-action/<param1:.*>' => ['site/alphabet', 'defaultParams' => ['letter' => 'alpha']],
'beta-action/<param1:.*>'  => ['site/alphabet', 'defaultParams' => ['letter' => 'beta']],
'gamma-action/<param1:.*>' => ['site/alphabet', 'defaultParams' => ['letter' => 'gamma']],
'delta-action/<param1:.*>' => ['site/alphabet', 'defaultParams' => ['letter' => 'delta']],