我试图在我的 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',
        )
    )
);

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

有帮助吗?

解决方案

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

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

在视图/布局中

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

附:在任何 Module.php 中,您都可以像这样获取 serviceManager:

public function onBootstrap(\Zend\EventManager\EventInterface $e)
{
    $application = $e->getApplication();
    $serviceManager = $application->getServiceManager();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top