私は週末中ずっとZend_Navigationに苦労していましたが、今は別の問題があり、それが私の多くの問題の原因であると信じています。
Zend_Navigationをレガシー1.7.6ZendFrameworkアプリケーションに追加しようとしています。Zendライブラリを1.9.0に更新し、このライブラリを更新できるようにブートストラップを更新しました。
問題は、方法がわからないことです。例では、Navigationオブジェクトをビューに追加する方法の新しいブートストラップメソッドを示しています。これを試しました。
//initialise the application layouts with the MVC helpers
$layout = Zend_Layout::startMvc(array('layoutPath' => '../application/layouts'));
$view = $layout->getView();
$configNav = new Zend_Config_Xml('../application/config/navigation.xml', 'navigation');
$navigation = new Zend_Navigation($configNav);
$view->navigation($navigation);
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
これは問題なく実行されているようですが、レイアウトでブレッドクラムビューヘルパーを使用すると、次のエラーが発生します。厳密な標準:C:\ www \ moobia \ development \ website \ application \modules\の空の値からデフォルトオブジェクトを作成する27行目のemployers\controllers \ IndexController.php
これは、コントローラーのinit()関数の次のコードが原因で発生します。
$uri = $this->_request->getPathInfo();
$activeNav = $this->view->navigation()->findByUri($uri); <- this is null when called
$activeNav->active = true;
Zend_Navigationオブジェクトがビューにないためだと思います。
ブートストラップを現在のメソッドに移行することを検討しますが、現在、リリースの時間が不足しています。
ありがとう、
許す