2009-08-27 4 views
0

사이트 메뉴에 탐색 구성 요소를 사용합니다. 나는 또한 요청 매개 변수에서 선택된 메뉴 항목을 그림으로 출력 해 봅니다. 자동으로 수행됩니다. 유일한 문제는 이것이 작동하려면 모든 노드에 대한 탐색 구성에서 조치와 컨트롤러를 지정해야한다는 것입니다. 이는 zend가 루트, 액션 및 컨트롤러 정보에서 생성 된 링크에 자동으로 추가되는 링크를 생성 할 때도 마찬가지입니다.Zend_Navigation URL 생성 문제

누구나 동일한 문제가 있었습니까?

Zend manual section, Mvc 탐색 페이지 기능을 설명합니다.

예 :

스트랩에서 정의 된 일부 경로 :

$router->addRoute('user_profile_tab', new Zend_Controller_Router_Route(
      'profil/:user/:location/:tab/*', 
      array(
       'action'  => 'profile', 
       'controller' => 'user', 
       'user'  => ($user ? $user->id : 0), //change later 
       'location'  => 0 //inject appropriate value later 
      ) 
     )); 

네비게이션 컨테이너 객체 :

$page = $container->getById('user-profile-perms'); 
$page->href; 

http://www.example.com/profil/1/0/3/controller/user/action/profile 

이유 작용 CONTROLER을

$container = ..... 
......, 
array(
     'label' => tr('Privileges'), 
     'id' => 'user-profile-perms', 
    'type' => 'Zulu_Navigation_Page', 
    'controller' => 'user', 
    'action' => 'profile', 
    'route'=> 'user_profile_tab', 
     'params' => array('tab'=>Main_Lib_Common::NAVI_USER_TAB_PERMS) 
) 
); 

결과를 사용하여 당신이 묻는 네비게이션 컨테이너 객체의 params. $ page-> isActive() 확인은 완벽한 일치를 위해이 데이터를 필요로합니다.

수정 :

는 MVC 탐색 페이지 확대 및 경로들을 정의하지 않는 경우에 작용 컨트롤러 모듈 PARAMS 제거 대안 getHref() ... 방법을 제공한다.

+0

사례를 제공해 주시겠습니까? –

답변

0

는 I는이 이상한 행동 수정했을 : 대안 getHref() 메소드를 항로

  • 검사를 제공

    • 하는 연장 MVC 탐색 페이지
    • 을 갖지 않는 작용 컨트롤러 모듈 파라미터 href 생성 전에 params 배열에서 제거하십시오.

    isActive 일치는 계속 작동합니다. 어떤 방식 으로든 경로 또는 탐색 노드를 수정하지 않았기 때문입니다.

  • +0

    아마도 의도 한 동작이 아니므로 버그보고를 제출해야합니다. http://framework.zend.com/issues –