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);
助けてくれてありがとう!