【问题标题】:Yii 1.1: static parameter in routeYii 1.1:路由中的静态参数
【发布时间】:2019-05-17 06:41:18
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    在你的情况下,你可以使用参数作为模式的一部分并且只使用一个规则:

    '<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']],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多