0

Zend_Navigation でブレッドクラムを表示する際に問題があります。

DB から記事を照会するためにパラメーターを受け取る単一のコントローラーがあります。したがって、「articles/view/id/3」を指定すると、id が 3 の記事が返されます。私が抱えている問題は、このロジックの下でブレッドクラムが機能することです。理想的には、「articles/view/id/3」に移動するとき、パンくずリストを「Articles > Article_Name」にしたいと考えています。

私のコードはナビゲーションとサブナビゲーションを正常にレンダリングしますが、ブレッドクラムで失敗するだけで、現在何も表示されていません。

これが私のコードです:

1) 次のような XML 形式のサイトのナビゲーション:

<?xml version="1.0"?>
<zend-config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
  <nav>
    <articles>
      <label>Articles</label>
      <uri>/</uri>
      <order>1</order>
      <active>1</active>
      <visible>1</visible>
      <pages>
        <article_one>
          <label>Article One</label>
          <uri>/articles/view/id/81e728d9d4c2f636f067f89cc14862c</uri>
          <order>1</order>
          <active>1</active>
          <visible>1</visible>
        </article_one>
      </pages>
    </articles>
  </nav>
</zend-config>

2) ナビゲーション (レイアウト内):

$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$nav = new Zend_Navigation($config);
$view = new Zend_View();
$view->navigation($nav);
echo $view->navigation()->menu();

3) ブレッドクラム (Articles コントローラー内):

public function init() {
        $uri = $this->_request->getPathInfo();
        $activeNav = $this->view->navigation()->findByUri($uri);
        $activeNav->class = "selected";
        $activeNav->active = true;
    }

4) ブレッドクラム (レイアウト内):

//Doesn't display anything[/B]
echo $view->navigation()->breadcrumbs()->setLinkLast(true);

助けてくれてありがとう!

4

3 に答える 3

1

どのパラメータの URI ですか?
パラメータcontroller&はどこにありますactionか?

あなたはここで見ることができますhttp://framework.zend.com/manual/ru/zend.view.helpers.html またはソースコードZend/View/Helper/Navigation/Breadcrumbs.php

于 2011-03-22T21:15:41.380 に答える
0

これを指摘するだけで、Actualli パンくずリストは uri で動作します。

問題は$this->view->navigation()->findByUri($uri)、null オブジェクトを返すことです。ブートストラップでセットアップされているにもかかわらず、表示されないためです。

ブートストラップ ファイルを追加Zend_Registry::set('Zend_Navigation', $navigation);すると、問題が解決するはずです。

乾杯

于 2011-04-04T12:36:26.100 に答える
0

/URL に追加してみてください。私も同じ問題を抱えていました。

于 2011-11-11T10:37:16.770 に答える