2012-06-04 4 views
0

내가 같은 젠드에서 동일한 컨트롤러에 여러 경로를 설정하려고 : 나는 시도했다여러 경로

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 Documentation을 반복해서 읽었습니다. 뭔가 빠진 느낌이 들었습니다. 다른 라우터 클래스를 사용해야합니까?

어떤 도움을 많이

내가 이전의 규칙을 덮어 쓰기 한 혐의로

답변

0

감사합니다. addRoute()의 첫 번째 인수는 라우트의 이름이며, 생각한대로 라우팅하는 컨트롤러가 아닙니다. 각 경로에 고유 한 이름을 지정하면 문제가 해결되었습니다.