0

このルートを追加したとき

$classes_router = new Zend_Controller_Router_Route(
    '/:filter1/:filter2/*',
    array(
        'module'     => 'course',
        'controller' => $filter_controller,
        'action'     => 'index',
        'filter1'    => '',
        'filter2'    => ''
    )
);

デフォルトルート:module/:controller/:actionは機能しなくなりました。何が問題なのか教えてください。

4

1 に答える 1

2

問題は、へのリクエストsomemodule/somecontroller/someactionが追加したルートと一致することです(デフォルトのルートの前にチェックされます)。:filter1おそらく変数の一致の可能性を制限することによって、ルートに一致するものを決定するための制限を提供する必要があります。

$classes_router = new Zend_Controller_Router_Route(
    '/:filter1/:filter2/*',
    array(
        'module'     => 'course',
        'controller' => $filter_controller,
        'action'     => 'index',
        'filter1'    => '',
        'filter2'    => ''
    ), array(
        'filter1' => '(value1|foo|somethingelse)'
    )
);

または静的プレフィックスを追加します。

$classes_router = new Zend_Controller_Router_Route(
    '/filter/:filter1/:filter2/*',
    array(
        'module'     => 'course',
        'controller' => $filter_controller,
        'action'     => 'index',
        'filter1'    => '',
        'filter2'    => ''
    )
);
于 2012-10-22T16:16:25.287 に答える