Zend Framework 1.10.8 を使用しています。
layout.phtml にブレッドクラム セクションを作成したいと考えています。私のメニューには、 http://mydomain.com/editor/edit/id/42のような動的 URL パラメータを持つリンクがいくつかあります。
id=XXX を Zend_Navigation に渡す方法を見つけようとしていますが、XXX はデータベースからのものであり、リクエストごとに異なります。
これまでに見つけた解決策の 1 つは、params_id などのプロパティを xml 宣言に追加することです。
configs/navigation.xml で
<pages>
<editor>
<label>Editor</label>
<controller>editor</controller>
<action>edit</action>
<params_id>id</params_id>
<route>default</route>
</editor>
</pages>
そしてコントローラーでページをループし、パラメーター id = 42 を動的に追加します (最終バージョンではリクエストオブジェクトから 42 が取得されます)。
$pages = $this->view->navigation()->getContainer()->findAllBy('params_id','id');
foreach ($pages as &$page) {
$page->setParams(array(
'id' => 42,
'something_else' => 667
));
}
動的な URL パラメータを追加することは Zend_Navigation の基本的な要件のように思えるので、私のソリューションは複雑すぎてコストがかかりすぎて、「すぐに使える」もっと単純なソリューションが必要であると確信しています。