在没有顶层的情况下渲染Zend导航的活动分支

Son*_*nny 2 php zend-framework zend-navigation

我在一个地方呈现Zend Navigation对象的顶级元素,如下所示:

echo $this->navigation()->menu()->setMaxDepth(0);
Run Code Online (Sandbox Code Playgroud)

如何从活动分支的第二级渲染导航树?我已经尝试创建一个循环$this->container对象的部分,但我不知道如何确定我当前的项目是否是活动分支.一旦我确定它是活动分支,我该如何渲染菜单?我是这么做的,并且遗漏了一些明显的东西?

谢谢!


更新:

我接受了一个解决方案,因为这是我使用的,但我也想提供我的实际问题的答案,以供参考.($this是视图对象)

// Find the active branch, at a depth of one
$branch = $this->navigation()->findActive($this->nav, 1, 1);
if (0 == count($branch)) {
    // no active branch, find the default branch
    $pages = $this->nav->findById('default-branch')->getPages();
} else {
    $pages = $branch['page']->getPages();
}
$this->subNav = new Zend_Navigation($pages);
Run Code Online (Sandbox Code Playgroud)

$this->subNav 然后可以用于渲染子菜单.

Sej*_*nus 5

如果我的问题是正确的,我就是这样做的:

print $this->navigation()->menu()->renderMenu(null, array(
    'minDepth' => 1,
    'maxDepth' => 1,
    'onlyActiveBranch' => true,
    'renderParents' => false));
Run Code Online (Sandbox Code Playgroud)

仅渲染当前活动菜单的子菜单.