如何在zf2中设置基于登录的导航


how to set navigation based on login in zf2?

module.config的导航定义如下

'navigation' => array(
            'default' => array(
                    array(
                            'label' => 'Home',
                            'route' => 'home',
                    ),
                    array(
                            'label' => 'Report',
                            'route' => 'report',
                    array(
                            'label' => 'Logout',
                            'route' => 'logout',
                    ),
            ),
    ),

在我的布局.phtml

<?php
    echo $this->navigation('navigation')->menu()->renderMenu(
        $container = null,
        $options = array(
            'ulClass' => 'nav navbar-nav',
            'indent'  => 16,
        )
    );
?>

如果未设置标识,如何在module.config中的导航中隐藏注销?

现在,无论登录与否,我都可以看到注销,如何通过导航来限制?

如果用户未登录,则可以从导航中删除注销url。

尝试:

//Module.php
public function onBootstrap(MvcEvent $e)
{               
    $application = $e->getApplication();
    $sm = $application->getServiceManager();
    if (user not login) {
        $container = $sm->get('navigation');
        $logoutPage = $container->findBy('route' , 'logout');
        $container->removePage($logoutPage);
    }
}

参考