2012-10-20 5 views
3

더 구체적인 탐색을 위해 하위 메뉴와 함께 기본 탐색을 사용하려고합니다. 내 레이아웃에서ZF2 - 탐색보기 도우미를 사용하는 다중 탐색 메뉴

내가 이런 뷰 도우미 호출 오전 :

$this->navigation('main_navigation')->menu() 

보기를 나는이처럼 호출 오전 :

$this->navigation('sub_navigation')->menu() 

문제는 때마다 그 navigation() 뷰 도우미를 번 이상 번이라고 부릅니다. 두 번째 두 위치에 입력합니다. 즉, subnav이고은 기본 탐색 subnav 메뉴입니다.

내 병합 설정은 다음과 같습니다

'navigation' => array(
    'main' => array(
     'home' => array(
      'label' => 'Home', 
      'route' => 'myroute', 
     ), 
     'somepage' => array(
      'label' => 'Me', 
      'route' => 'somepage' 
     ) 
    ), 
    'sub' => array(
     'test' => array(
      'label' => 'Test', 
      'route' => 'myroute', 
      'action' => 'test' 
     ), 
     'other-test' => array(
      'label' => 'Other Test', 
      'route' => 'myroute', 
      'action' => 'other-test' 
     ) 
    ) 
) 

가 어떻게이 navigation보기 도우미를 사용 하는가는 각 통화에 대한 올바른 메뉴를 인쇄 할 수 있도록?

+1

이 질문에 대한 답변보기 : http://stackoverflow.com/questions/12972316/how-to-set-up-2-navigations-in-zf2 – Sam

+0

@Sam 작동하지 않습니다. 지난 밤에 ZFtalk ​​IRC 채널에서 6 시간을 ZfcAdmin 및 ZfcUser의 _creators_와 이야기하면서 보냈으며 _resolve_하지 않고도 내 _error_를 성공적으로 복제 할 수있었습니다. 나는 이미 내 애플 리케이션을 위해 그것을 가지고 있고 ** 작동하지 않는다. ** 그것이 요점이다. –

+0

@Sam 어쨌든 그것을 찾아 주셔서 감사합니다. :) –

답변

11

menu, breadcrumbs, sitemaplinks 헬퍼가 플러그인으로 등록됩니다. 처음으로 $this->navigation('main_navigation')에 전화하면 Zend\View\Helper\Navigation이 컨테이너 "main_navigation"을 만듭니다. menu()을 처음으로 호출하면Zend\View\Helper\Navigation\Menu 개체는 이고 직접적으로 개체가 생성됩니다.

이것은 결함을 나타냅니다. $this->navigation('sub_navigation')을 호출하면 탐색 컨테이너가 navigation()보기 도우미로로드됩니다. menu()을 호출하면 메뉴보기 도우미가 이미 만들어집니다. 그래서 새로운 컨테이너는 더 이상 주입되지 않습니다.

분명히 이것은 코드베이스의 버그입니다. 메뉴 헬퍼는 컨테이너 문자열을 받아 들일 수 있습니다.

<?php echo $this->navigation()->menu('main_navigation'); ?> 
<?php echo $this->navigation()->menu('sub_navigation'); ?> 

나는 그것에 대해 문제를 제기했으며 버그가 수정 될 것입니다.

+0

오, 당신은 ** 생명의 은인입니다 ** !! 고마워요 :) –

+1

괜찮습니다! 이에 대한 문제는 https://github.com/zendframework/zf2/issues/2817에서 확인할 수 있습니다. –