获得请求参数时子菜单没有显示

时间:2011-03-01 17:09:17

标签: zend-framework zend-navigation

我有一个navigation.xml文件,我有一个简单的菜单,在<pages>标记内有一个子菜单。 子菜单运行良好,除非我在网址中添加了$_GET参数。

像这样:admin/manage/pages/id/1&lt; - 使用此网址,子菜单未显示

链接说明: {module}/{controller}/{action}/{key}/{value}

我想我没有更多的信息,因为我的设置只是基本的,而且行为很奇怪。

希望你知道这出错了。

Bytheway:我使用默认路线。


编辑:我使用以下代码显示子菜单$this->navigation()->menu()->setMaxDepth(0);(来自 ArtWorkAD 的代码建议都不起作用)

这是我的navigation.xml:`                           网站             /         

    <beheer>
        <label>Beheer</label>
        <module>admin</module>
        <controller>beheer</controller>
        <uri>/admin/beheer</uri>

        <pages>
    <paginabeheer>
        <label>Pagina beheer</label>
        <module>admin</module>
        <controller>paginabeheer</controller>
        <action>index</action>
                **//THE CODE BELOW IS ADDED ON ArtWorkAD's SUGGESTION**
                <pages>
                    <paginabeheer>
                        <label>Pagina beheer</label>
                        <module>admin</module>
                        <controller>paginabeheer</controller>
                        <action>index</action>
                    </paginabeheer>
                </pages>
                **// END ADDED CODE**
            </paginabeheer>
    </pages>

    </beheer>
</nav>

`

2 个答案:

答案 0 :(得分:1)

有些人说这是一个错误,但我认为有一个简单的解决方法。

查看此问题:Zend_View_Helper_Navigation_Menu::renderSubMenu() should use minDepth=1 per default

所以尝试像这样使用minDepth

// Navigation 1. Level
echo $this->navigation()->menu()->renderMenu(null, 
          array('minDepth' => 0, 'maxDepth' => 0));

// Navigation 2. Level
echo $this->navigation()->menu()->renderMenu(null, 
          array('minDepth' => 1, 'maxDepth' => 2, 'onlyActiveBranch' => true));

如果这不起作用,请尝试将子菜单项添加到子菜单以查看会发生什么,现在应该渲染子菜单。

答案 1 :(得分:0)

ArtWorkAD你是对的!我找到了我做错的事。

现在工作代码为:<?= $this->navigation()->menu()->setUlClass('navigation-submenu')->renderMenu(null, array('minDepth' => 2, 'maxDepth' => 2)); ?>

所以你的回答是正确的! 在我的XML文件中,需要我有额外的子子页面。非常感谢您的解决方法!

我将你的帖子标记为答案。