【问题标题】:ZF2 - multiple nav menus using the navigation view helperZF2 - 使用导航视图助手的多个导航菜单
【发布时间】:2012-10-20 01:36:55
【问题描述】:

我正在尝试将主导航与子菜单结合使用以进行更具体的导航。

在我的 layout 中,我这样调用视图助手:

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

在我的观点中,我这样称呼它:

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

问题在于,每当我将navigation() 视图助手称为不止一次,它只会在两者中输出第二个地方。换句话说,它正在为 both 主导航 子导航菜单打印 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 视图助手,以便它为每次调用打印正确的菜单?

【问题讨论】:

  • 查看此问题的答案:stackoverflow.com/questions/12972316/…
  • @Sam 那行不通。昨晚我在 ZFtalk IRC 频道上花了 6 个小时与 ZfcAdmin 和 ZfcUser 的 创建者 之一交谈,他能够成功复制我的 error 而无法解决它。我已经为我的应用程序提供了该功能,但它不起作用。这就是重点。
  • @Sam 还是感谢您找到它。 :)
  • 不客气,在我看来,它就像是相同的方法,但如果它在#zftalk 中不是最落后的话:D 没有其他建议,但^^

标签: php navigation zend-framework2 view-helpers


【解决方案1】:

menubreadcrumbssitemaplinks 助手注册为插件。如果您第一次调用$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'); ?>

我已经提交了一个关于它的问题,这个错误将被修复。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多