1

Yii URL マネージャーで、GET パラメーターがアタッチされている場合、URL に別のルートを定義したいと思います。たとえば、URL「shopping-wizard/」はルート shoppingWizard/index に移動し、URL「shopping-wizard/?answer=10」はルート shoppingWizard/result に移動する必要があります。

私は次のルールを試しました:

'urlManager'=>array(
    'rules'=>array(
        'shopping-wizard/?answer=<answer>' => 'shoppingWizard/result',
        'shopping-wizard/' => 'shoppingWizard/index',
    ),
),

CUrlRule::parseUrl() がパターンに末尾のスラッシュを追加するため、これは機能しません。SEO 上の理由から、パラメーターを含む URL の末尾にスラッシュがない場合があります。

URL ルール コンポーネントで動作しますが、もっと簡単な方法はありますか? 別のコンポーネントなしで?

4

1 に答える 1

0

次のようなルールを使用できます。

'urlManager'=>array(
    'rules'=>array(
        'shopping-wizard/<answer:\d+>' => 'shoppingWizard/result', //d+ - digits only
        'shopping-wizard/' => 'shoppingWizard/index',
    ),
),

そしてあなたのコントローラーで:

public function actionResult($answer) {
    ...
}
于 2014-04-24T16:00:19.967 に答える