2012-12-24 4 views
1

Zend Framework 1.12를 사용하고 있습니다.Zend Router를 사용하는 동안 다른 링크 (경로로 정의되지 않은 링크)가 손상됩니다.

일부 라우터를 추가하고 싶습니다. 내 시스템에는 사용자와 관리자가 있으며 사용자 페이지를 볼 수있는 관리자 용 라우터를 추가했습니다.

나는 나의 Bootstrap.php 파일에
// meant to create the usage "xxx.com/userview/someusername" 
    $route = new Zend_Controller_Router_Route(
      'userview/:username', 
      array('controller' => 'user', 
       'action' => 'viewone', 
       'username' => 'someusernamedefault') 
      ); 
    $router = $frontController->getRouter(); 
    $router->addRoute('userview', $route); 

을 추가했다. 사이드 바에 다른 컨트롤러의 작업 링크가있는 링크가 있습니다. .phtml 파일에 링크를 추가했습니다.

echo $this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), null, true); 

이 사이드 바에는 여러 컨트롤러의 많은 링크가 포함되어 있습니다.

경로를 추가 할 때까지 제대로 작동합니다. Bootstrap에 새로운 경로를 추가 한 후 (루트) 해당 컨트롤러 (사용자)에게 새로운 액션 (viewall)을 추가하면 잘 동작합니다 ("xxx.com/userview/someusername"으로 사용할 수 있습니다).하지만 다른 링크는 모든 사이드 바는 "xxx.com/userview."그들은 모두 컨트롤러와 액션의 자신의 가치를 잃고 ... 나는 내 URL의 더 나은, 또는 내 라우터 더 나은 정의해야합니다 잘못된 ??를하고있는 중이 야 무엇

된다?

미리 감사드립니다

답변

3

URL 도우미에 대한 두 번째 매개 변수는 사용할 경로의 이름이어야합니다. null을 전달하면 현재 경로를 사용하게되므로 링크가 나옵니다 잘못되었습니다. 사이드 바 링크 통화를 다음으로 변경하십시오 :

$this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), 'default'); 

그리고 잘 작동합니다.