使用xml文件的zend导航单级菜单

时间:2012-04-20 03:28:03

标签: zend-framework zend-navigation

使用zend框架如何创建单级菜单?

我按照教程,该人创建了一个两级下拉菜单。我想要搬回家。我已经修改了几次navigation.xml文件并导致致命错误。

我需要什么xml标记来促进家庭孩子作为父级菜单?因为在我根本不需要主页按钮。

期望的结果:

  
      
  •   
  • 为什么
  •   
  • 什么
  •   
  • 扬声器
  •   
  • 资源
  •   

当前结果:

  
      
  •      

    •谁

         

    •什么

         

    •何时

         

    •为什么

  •   

当前navigation.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<configdata>
  <nav>
    <home>
      <label>Home</label>
      <controller>page</controller>
      <action>index</action>
      <module>default</module>
      <pages>
        <why>
          <label>why</label>
          <controller>page</controller>
          <action>why</action>
          <module>default</module>
        </why>
        <who>
          <label>who</label>
          <controller>page</controller>
          <action>who</action>
        </who>
        <resources>
          <label>resources</label>
          <controller>page</controller>
          <action>resources</action>
        </resources>
        <signin>
          <label>sign in</label>
          <controller>account</controller>
          <action>login</action>
          <module>default</module>
        </signin>
      </pages>
    </home>
  </nav>

...

应用/ bootstrap.php中:

<?php function _initViewHelpers() {
   $this->bootstrap('layout);
   // ... Skipping to relevant part
    $navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
    $navContainer = new Zend_Navigation($navContainerConfig);
    $view->navigation($navContainer);
} ?>

布局/ default.phtml

<div class="navigation"><?php print $this->navigation(); ?></div>

4 个答案:

答案 0 :(得分:1)

setMaxDepth()setMinDepth()怎么样?您可以设置要渲染菜单的深度:

<?= $this->navigation()->menu()
                       ->setMinDepth(1)
                       ->setMaxDepth(2)
                       ->render() . PHP_EOL; ?>

此外,您还可以找到有关navigation view helper in the official manual的更多信息。这些信息通常比教程中的信息更具相关性。

答案 1 :(得分:1)

您应该只需调整容器即可只显示您想要显示的链接。在这种情况下,您只需从xml文件中删除Home元素。

<?xml version="1.0" encoding="UTF-8" ?>
<configdata>
  <nav>
      <pages>
        <why>
          <label>why</label>
          <controller>page</controller>
          <action>why</action>
          <module>default</module>
        </why>
        <who>
          <label>who</label>
          <controller>page</controller>
          <action>who</action>
        </who>
        <resources>
          <label>resources</label>
          <controller>page</controller>
          <action>resources</action>
        </resources>
        <signin>
          <label>sign in</label>
          <controller>account</controller>
          <action>login</action>
          <module>default</module>
        </signin>
      </pages>
  </nav>

答案 2 :(得分:1)

<?xml version="1.0" encoding="UTF-8" ?>
<configdata>
  <nav>
     <why>
      <label>why</label>
      <controller>page</controller>
      <action>why</action>
      <module>default</module>
    </why>
    <who>
      <label>who</label>
      <controller>page</controller>
      <action>who</action>
    </who>
    <resources>
      <label>resources</label>
      <controller>page</controller>
      <action>resources</action>
    </resources>
    <signin>
      <label>sign in</label>
      <controller>account</controller>
      <action>login</action>
      <module>default</module>
    </signin>
 </nav>

答案 3 :(得分:0)

从XML文件中删除主菜单时,会出现异常

  

Zend_Navigation_Exception:无效参数:无法确定要在第235行的C:\ www \ project \ library \ Zend \ Navigation \ Page.php中实例化的类