0

私のサイトでは、この方法でページの URL を取得する必要があります: /category/page4、したがって、コントローラーに渡されるパラメーターは、「ページ」という単語の後の数字です。次の方法で URL を取得できました: /category/page/4(スラッシュを追加) 次のコードを使用:

$router->addRoute('categoryPages', new Zend_Controller_Router_Route(
    '/category/page/:page',
     array(
        'controller' => 'caegory',
        'action' => 'index'
    ),
    array(
        'page' => '\d+'
    )
));

/category/page4このコードを次のように変更すると、URL が次のようになると予想されます。

// Simply removed one slash
'/category/page:page'

ただし、このコードは必要なルーティングを作成しません。私の間違いは何ですか?

4

1 に答える 1

1

ではこれを行うことはできませんZend_Controller_Router_Route。名前付き変数は、URL 区切り文字 (スラッシュ) またはルートの開始/終了のいずれかに隣接して独自に配置する必要があります。

代わりに、これを正規表現ルートとして実行できます。

$router->addRoute('categoryPages', new Zend_Controller_Router_Route_Regex(
    'category/page(\d+)',
     array(
        'controller' => 'caegory',
        'action' => 'index'
    ),
    array(
        1 => 'page'
    ),
    'category/page%s'
));
于 2013-03-14T13:49:01.140 に答える