2011-01-03 2 views
0

어디서 문제가 있었는지 보여주기 위해 질문을 다시 작성했습니다.URL 문제 : zend navigation이 url에 경로를 추가합니다. - zend 탐색 기본 렌더링을 수정하는 방법

안녕하십니까, 젠드 프레임 워크로 CMS 응용 프로그램을 만들고 있습니다. > url을 제외한 모든 것이 잘 작동합니다. 내가 가리키는 링크를 클릭하면 :

'dep/open/id/001' 

효과적으로 도착하지만 링크 텍스트가 URL에 추가됩니다. 지금에 마우스를 올려 놓으면> 다른 링크가 나는 상태 표시 줄에 볼 수 있습니다

'출발/개방/ID/출발/개방/ID/023'등

하고 있습니다.

URL을 렌더링하는 Zend_Navigation이므로 URL을 수정할 수 없습니다.

어떻게 수정할 수 있습니까?

감사

내가 Zend_Navigation 잘못된 URI를주고 있었다이었다 문제는 :

public function renderAction() 
{ 
    ... 

     //THIS IS WRONG: 
     $uri = 'dep/show/id/' . $dep->dept_id; 
     ... 

     $itemArray[] = array(
        'label' =>$label, 
        'uri' => $uri 
        ); 
    } 
    $container = new Zend_Navigation($itemArray); 
     $this->view->navigation()->setContainer($container); 
} 

URI는해야한다 :

$uri = $dep->dept_id; 

난이있을 수 있습니다 생각하기 때문에 'dep'의 경로를 설정했습니다.

$route = new Zend_Controller_Router_Route(
     'dep/show/:id', 
     array(
      'action' => 'show', 
      'controller' => 'dep', 
      'module' => 'default', 
      'id' => '', 
      ), 
     array( 
      'id' => '[0-9]+' 
      ) 
     ); 

     $router->addRoute('dep', $route); 

그 이유가 될 수 있습니까?

$uri = 'dep/show/id/' . $dep->dept_id;

그래서 해석, 실제로 당신을 속이고있는 브라우저의 : 문제가 당신이 상대 URL을 제공한다는 것이다처럼 다시

답변

0
내가 노선 실험을 계속 한 질문의 첫 번째 재 편집 및 Zend_Navigation에 전달 된 매개 변수 후

내가 실제로 문제가 이미로 '출발'경로 설정했다고했다 coclusion에 온 :

'/dep/show/id' 

그래서 $ uri 매개 변수에서 동일한 경로를 Zend_Navigation에 전달하면 중복 문제가 발생합니다.

내가 여기에 질문을 게시 할 때까지 내가

1

덕분에 나에게 보이는 그 URL은 이고 현재 URL은입니다.

당신이 기본 URL 접두사로 URL을 생성하는 경우 :

$uri = 'http://example.com/myapp/dep/show/id' . $dep->dept_id;

또는 :

$uri = '/myapp/dep/show/id' . $dep->dept_id;

다음 브라우저가 취급하는 절대 (각각 루트 절대) 너는 더 나은 모양이어야 해.

baseUrl()은 전면 컨트롤러에서 사용할 수 있습니다.

+0

내가 노선 실험을 계속 한 질문의 첫 번째 재 편집 한 후, 당신에게 다윗을 감사하고, 매개 변수가 전달 가 기다려 주셔서 모두 감사 솔루션을 찾을 수없는 것 같다 Zend_Navigation에 이르기까지 나는 사실상 'dep'경로를 '/ dep/show/id'로 설정했기 때문에 동일한 경로를 Zend_Navigation에 전달하면 중복 문제가 발생한다는 사실을 알게되었습니다. – curro

+0

Aaah, gotcha. 다행이 문제를 발견했습니다. 건배! –