ナビゲーションツリーを構成するアプリケーションのページがあります。リクエストの値を使用してナビゲーションにページを動的に挿入したいと思います。私はすでにページを見つけて、addPage()
メソッドを呼び出すロジックを持っています。私が探しているのは、簡単にZend_Controller_Request
の値をZend_Navigation_Page::factory()
に渡す方法です。そのページを追加することができます。たぶんプラグインとして書かれていますか?Zend_Controller_RequestからZend_Navigation_Page_Mvcインスタンスを作成する
ソリューション
AngelPは、最も近いを得たので、私は彼に信用を与えているが、ここで私の解決策だ:
$request = $this->getRequest();
if ($page = $this->view->siteNav->findBy('id', $page_id)) {
$page->addPage(Zend_Navigation_Page::factory($request->getParams())
->setParams($request->getParams())
->setLabel($this->view->title)
->setVisible(false));
}
このコードは、コントローラのアクションから実行されます。 $this->view->siteNav
は、ビューにあるZend_Navigation
のインスタンスです。 Zend_Controller_Request
インスタンスのgetParams()
は、に、次にZend_Navigation_Page_Mvc
インスタンスのsetParams()
メソッドに簡単に渡されます。
私は、手作業で構築されたkey => value配列を使って 'Zend_Navigation_Page'を構築する方法を知っていますが、' Zend_Controller_Request'のいくつかのメソッドを使っていくつかのショートカットがあることを期待していました – Sonny