【问题标题】:How to mix dynamic and static navigation with zend framework 2如何使用zend框架2混合动态和静态导航
【发布时间】:2014-07-09 16:50:32
【问题描述】:

我在 zend 框架 2 中有一个项目,该项目具有默认导航,与 acl 连接,并具有来自不同模块的配置更正集(静态)。

我希望这个模块之一可以动态地将页面添加到导航中。

对于这个模块,我有这部分 module.config.ing

'navigation' => array(
    'default' => array(
        array(
            'id' => 'page-1',
            'label' => 'Page',
            'route' => 'page',
            'resource' => 'page',
            'privilege' => 'view',
            'order' => 40
        )
     )
 )

如何以及在哪里可以向该页面添加子页面?

【问题讨论】:

  • 动态如何?从数据库加载?
  • 是的,但这并不重要,我只需要一些代码,我想放入 Module.php 中,我从服务管理器获取导航器并将我的新页面放在该静态页面下。我已经在getViewHelperConfig 尝试过,但没有用。

标签: dynamic static navigation zend-framework2


【解决方案1】:

我找到了这个解决方案,我不知道这是否是最好的方法,但它确实有效。 在我的 Module.php 中,我放了:

public function init(ModuleManager $moduleManager) {
    $events = $moduleManager->getEventManager();
    $events->attach(ModuleEvent::EVENT_MERGE_CONFIG, array($this, 'onMergeConfig'));
}

public function onMergeConfig(ModuleEvent $e) {
    $pages = array(
        'id' => 'page-1',
        'label' => 'Page',
        'route' => 'page',
        'resource' => 'page',
        'privilege' => 'view',
        'order' => 40
    )

    $configListener = $e->getConfigListener();
    $config = $configListener->getMergedConfig(false);

    // Modify the configuration; here, we'll remove a specific key:
    $config['navigation']['default']['team']['pages'][] = $pages;

    // Pass the changed configuration back to the listener:
    $configListener->setMergedConfig($config);
}

现在我只需动态加载页面。 如果有人有更完整和正确的答案,请写下来。

【讨论】:

  • “只是为了动态加载页面”是乐观主义者。我需要更多帮助才能做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 2015-02-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多