Yii 1.1: статический параметр в маршруте - PullRequest
0 голосов
/ 16 декабря 2018

В целях украшения у меня есть набор схем URL, таких как:

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

Они обрабатываются одним контроллером, и я желаю одним и тем же действием, например:

function actionAlphabet($letter, $param1)

Я хочу передать статический параметр в действие, которое будет зависеть от 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 голосов
/ 17 декабря 2018

В вашем случае вы можете использовать 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']],
...