1

我的导航正在运行,所有链接都工作正常。使用渲染导航$this->navigation($nav)->menu()将显示一个无序列表,并且所有链接都在工作。

此外,那里的活动链接也在工作。活动元素具有class="active"属性。

渲染相同的导航,只是作为一个 bradcrumb$this->navigation($nav)->breadcrumbs()不会给我任何东西。这可能是因为我的导航现在只有一层,但我认为第一层仍然应该被渲染。

使用超现代die()的调试,我发现什么都没有渲染,因为findActive()viewHelper 没有找到活动元素,因此返回一个空字符串。

关于我的错误可能位于何处的任何想法?任何见解将不胜感激。到目前为止,这是我的代码:

'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(); ?>

再次提前感谢。

4

3 回答 3

2

我玩了导航类/助手 - 当匹配“游乐场”路线时,似乎会呈现面包屑(在下面的示例中)。但是,通过添加'active' => true到我的默认路由意味着它将始终由面包屑助手呈现。

'navigation' => array(
     'default' => array(
        'test' => array(
            'label' => 'Home',
            'route' => 'test',
            'active' => true,
            'pages' => array(
                'playground' => array(
                    'label' => 'Playground',
                    'route' => 'playground',
                ),
            ),
        ),
    ),
 ),
于 2012-10-17T11:09:47.320 回答
1

除了 DrBeza 的回答之外,这对我有帮助。问题是面包屑导航只有在我们到达第二级时才会被渲染。但是您显然可以通过调用以下命令来更改该设置:

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

对我来说,这就是所需要的。然而,正如 DrBeza 指出的那样,在某些情况下,这可能还不够。

于 2012-10-17T13:17:02.943 回答
0

就我而言,这仅有助于此:

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

奇怪的是,只有在之前调用 $this->navigation('navigation')->menu() 时才需要它,因为没有呈现面包屑。

于 2013-02-16T00:57:01.373 回答