Yii 1.1:路由中的静态参数

eqoofvh9  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(141)

出于美化的目的,我有一组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中是否可行?

0yycz8jy

0yycz8jy1#

在您的情况下,您可以使用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']],

相关问题