0

zendフレームワークを使用して、単一レベルのメニューを作成するにはどうすればよいですか?

私はチュートリアルに従い、その人は2つのレベルのドロップダウンメニューを作成しました。家を外したいだけです。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>

..。

application / 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);
} ?>

layouts / default.phtml

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

4 に答える 4

1

setMaxDepth()とはどうsetMinDepth()ですか?メニューをレンダリングする深さを設定できます。

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

また、ナビゲーションビューヘルパーの詳細については、公式マニュアルを参照してください。これらの情報は、多くの場合、チュートリアルで見つけることができる情報よりも関連性があります。

于 2012-04-20T04:13:21.120 に答える
1

コンテナを調整して、表示したいリンクのみを表示できるようにする必要があります。この場合Home、xmlファイルから要素を削除するだけです。

<?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>
于 2012-04-20T06:31:00.083 に答える
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>
于 2012-04-20T11:22:39.743 に答える
0

XMLファイルからホームメニューを削除すると、例外が発生します

Zend_Navigation_Exception:無効な引数:235行目のC:\ www \ project \ library \ Zend \ Navigation\Page.phpでインスタンス化するクラスを決定できません

于 2012-09-25T10:19:50.303 に答える