2012-10-16 47 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'); 

奇怪的是,它要求只有$这个 - >导航(“导航”) - >菜单()之前被调用,因为面包屑未呈现。