0

zend で同じコントローラーに複数のルートを設定しようとしています。

URL                                            | Controller::Action
=================================================================================
http://mysite/tasks/:level/                    | Objectives::Objectives
http://mysite/tasks/:level/:objective/         | Objectives::tasks
http://mysite/tasks/:level/:objective/:taskID/ | Objectives::view

私は次のことを試しました:

<?php
$router->addRoute('objectives', new Zend_Controller_Router_Route(
    'task/:level/:objective/:taskID/',
    array(
        'controller' => 'objectives',
        'action'     => 'view'
    )
));
$router->addRoute('objectives', new Zend_Controller_Router_Route(
    'task/:level/:objective/',
    array(
        'controller' => 'objectives',
        'action'     => 'tasks'
    )
));
$router->addRoute('objectives', new Zend_Controller_Router_Route(
    'task/:level/',
    array(
        'controller' => 'objectives',
        'action'     => 'tasks'
    )
));
?>

ただし、最後のルールはルーターの以前のルールを上書きするようです.ルーターのZendドキュメントを何度も読みましたが、何かが足りないような気がします-別のルータークラスを使用する必要がありますか?

どんな助けでも大歓迎です

4

1 に答える 1

0

疑わしいように、以前のルールを上書きしていました。addRoute() の最初の引数はルートの名前であり、思ったようにルーティング先のコントローラーではありません。各ルートに一意の名前を付けると、問題が修正されました。

于 2012-06-04T12:31:53.190 に答える