如何在ZF2中渲染菜单的一部分

时间:2012-10-02 13:30:54

标签: navigation zend-framework2

我正在尝试仅在ZF2应用程序中呈现菜单配置的一部分。 我无法找到有关如何做到这一点的任何事情。

我的配置是:

array(
    'default' => array(
        'dashbord' => array(
            'label' => 'Dashbord',
            'route' => 'nav',
        ),
        'settings' => array(
            'label' => 'Settings',
            'route' => 'nav',
            'pages' => array(
            'Api Settings' => array(
                'label'=>'NAV_API_SETTINGS',
                'route'=>'nav'
             ),
        ),
    ),
    'NEW' =>array(
        'dashboard' => array(
            'label' => 'dashboard',
            'route' => 'nav',
        )
    )
);

所以我有子集默认和新。 我只需要渲染菜单的“NEW”子集。我该怎么做?

1 个答案:

答案 0 :(得分:2)

在某些Module.php或创建导航的位置,假设您的给定配置存储在$config中,并且您可以访问$serviceManager中的ServiceManager

$navigation = new \Zend\Navigation\Navigation($config['NEW']);
$serviceManager->setService('new_navigation', $navigation);

在视图/布局

<?php echo $this->navigation()->menu('new_navigation') ?>

PS:在任何Module.php中你都可以得到这样的serviceManager:

public function onBootstrap(\Zend\EventManager\EventInterface $e)
{
    $application = $e->getApplication();
    $serviceManager = $application->getServiceManager();
}