2012-10-16 45 views
1

我有我的導航運行和所有鏈接工作正常。使用$this->navigation($nav)->menu()呈現導航將顯示無序列表,並且所有鏈接都在工作。Zend 導航麪包屑沒有找到活動元素

此外,活動鏈接也在工作。活動元素具有class="active"作爲屬性。

呈現相同的導航,只是作爲bradcrumb $this->navigation($nav)->breadcrumbs()不呈現任何東西。這可能是由於我的導航目​​前只有一個級別,但是第一級應該仍然呈現。

使用超級現代die() -debugging我發現沒有得到的呈現,因爲viewHelper的findActive()沒有找到一個活動的元素,因此返回一個空字符串。

關於我的錯誤可能位於何處的任何想法?任何見解將不勝感激。這裏是我到目前爲止的代碼:

'navigation' => array(
    'default' => array(
     'biete' => array(
      'label' => 'Biete', 
      'route' => 'biete', 
     ), 
     'suche' => array(
      'label' => 'Suche', 
      'route' => 'suche', 
     ), 
     'administration' => array(
      'label' => 'Administration', 
      'route' => 'admin' 
     ), 
     'dashboard' => array(
      'label' => 'Meine Artikel', 
      'route' => 'dashboard' 
     ), 
     'login' => array(
      'label' => 'Anmelden', 
      'route' => 'duituser/login' 
     ), 
     'logout' => array(
      'label' => 'Abmelden', 
      'route' => 'duituser/logout' 
     ) 
    ), 
), 
'service_manager' => array(
    'factories' => array(
     'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory', 
     'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', 
    ), 
), 

,位於我layout.phtml

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

再次感謝提前查看零件。

回答

2

我玩過導航類/助手 - 看起來麪包屑是在'playground'路線匹配時呈現的(在下面的例子中)。然而,通過將'active' => true添加到我的默認路由意味着它將始終由麪包屑助手呈現。

'navigation' => array(
    'default' => array(
     'test' => array(
      'label' => 'Home', 
      'route' => 'test', 
      'active' => true, 
      'pages' => array(
       'playground' => array(
        'label' => 'Playground', 
        'route' => 'playground', 
       ), 
      ), 
     ), 
    ), 
), 
+0

謝謝比扎,你實際上已經指引我進入正確的方向。問題在於單層導航。因此,我不得不''setMinDepth(0)' - 如果你想你可以編輯你的答案到那個方向,否則生病發布自己明天的答案) – Sam

+0

我確實調查了setMinDepth(0),但它沒有效果。在主線路上嘗試使用「主動」=>「真正」,似乎可以達到預期的效果。 – DrBeza

+0

我根本不需要將活動設置爲true。主動部分get的由routest匹配沒有任何問題。對我來說,它只是最小的深度 – Sam

1

除了DrBeza的回答,這裏是幫助我的。問題在於一旦我們達到第二級,Breadcrumb-Navigation只會被渲染。但你可以通過調用以下內容來明顯改變該設置:

$this->navigation('navigation')->breadcrumbs()->setMinDepth(0); 

對我來說,這就是所有需要的。正如DrBeza指出的,但是在某些情況下這可能還不夠。

0

在我的案例有助於僅此這一點:

$this->navigation('navigation')->breadcrumbs()->render('navigation'); 

奇怪的是,它要求只有$這個 - >導航(「導航」) - >菜單()之前被調用,因爲麪包屑未呈現。