Dynamic 如何将动态和静态导航与zend framework 2混合使用

Dynamic 如何将动态和静态导航与zend framework 2混合使用,dynamic,static,navigation,zend-framework2,Dynamic,Static,Navigation,Zend Framework2,我在zend framework 2中有一个项目,它有一个默认的导航,与acl连接,并具有来自不同模块的配置更正集(静态) 我希望这个模块中的一个可以动态地向导航添加页面 对于这个模块,我有module.config.ing的这个部分 'navigation' => array( 'default' => array( array( 'id' => 'page-1', 'label' => 'Page

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

我希望这个模块中的一个可以动态地向导航添加页面

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

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

如何以及在何处向该页面添加子页面?

我找到了这个解决方案,我不知道这是否是最好的方法,但它很有效。 在my 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);
}
现在,我只需要以友好的方式加载页面。
如果有人有更完整正确的答案,请写下来。

如何?从数据库加载?是的,但这并不重要,我只需要一些代码,我想放在Module.php中,从service manager中获取navigator并将新页面放在该静态页面下。我已经在
getViewHelperConfig
中尝试过了,但是没有成功。“只是为了友好地加载页面”是为了乐观。我需要更多的帮助来做这件事。