我试图在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文档,我感觉我只是缺少一些东西 - 我应该使用不同的路由器类吗?
任何帮助都得到了很多赞赏
答案 0 :(得分:0)
怀疑我覆盖了以前的规则。 addRoute()的第一个参数是路由的名称,而不是您按照我的想法路由到的控制器。给每条路线一个唯一的名称可以解决问题。