ZF2 - 在 Zend 导航菜单中处于活动状态 <li>

ZF2 - Active <li> in Zend Navigation Menu

我已经成功地使用 Zend Navigation 生成了菜单。但是,从未设置活动页面(未为任何 <li> 元素设置 active class)。

我的部分:

foreach ($pages as $page): ?>

<?php if (!$page->isVisible() || !$this->navigation()->menu()->accept($page)) continue; ?>

<li role="presentation" <?php if ($page->isActive()) echo 'class="active"' ?>>
    <a href="<?php echo $page->getHref() ?>">
        <?php if ($icon = $page->get('icon')) {
            echo '<span class="' . $icon . '"></span>';
        } ?>
        <span> <?php echo $this->translate($page->getLabel()) ?> </span>
    </a>
</li>

<?php endforeach ?>

module.config.php 的摘录:

    'navigation' => array(
        'default' => array(
            array(
                'label' => 'Page 1',
                'route' => 'application/default',
                'namespace' => 'Application\Controller',
                'controller' => 'Index',
                'action' => 'page1',
                'icon' => 'fa fa-2x fa-file-text',
                'order' => 10,
            ),
            array(
                'label' => 'Page 2',
                'route' => 'application/default',
                'namespace' => 'Application\Controller',
                'controller' => 'Index',
                'action' => 'page2',
                'icon' => 'fa fa-2x fa-file-text',
                'order' => 20,
            ),
        ),
    ),

菜单在页面上正确呈现,但没有任何活动 class:

    $partial = array('partial/menu.phtml', 'default');
    echo $this->navigation('navigation')
        ->menu()
        ->setMinDepth(0)
        ->setMaxDepth(0)
        ->setPartial($partial);

在研究 ZF 代码后,我发现了一些我不明白的地方(在 Zend\View\Helper\Navigation\Menu.php 中):

// in renderNormalMenu function, line 288     
$isActive = $page->isActive(true);

关于我的问题有什么想法或建议吗?

非常感谢,

问题出在module.config.phpisActive 方法(来自 Zend\Navigation\Mvc)应该是 "full" 控制器名称(包括名称空间)。

我的配置拆分了命名空间和控制器名称,这是导致问题的原因。

解决方案:

            array(
                'label' => 'Page 1',
                'route' => 'application/default',
                'controller' => 'Application\Controller\Index',
                'action' => 'page1',
                'icon' => 'fa fa-2x fa-file-text',
                'order' => 10,
            ),