我的应用程序中有构成导航树的页面。我想使用请求的值动态地将页面插入到我的导航中。我已经有了查找页面的逻辑,然后调用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::factory()
,然后传递给Zend_Navigation_Page_Mvc
实例的setParams()
方法。
我知道如何通过使用手动构建的key =>值数组来构建`Zend_Navigation_Page`,但希望通过使用`Zend_Controller_Request`中的某些方法来获得一些快捷方式。 – Sonny 2010-12-08 22:15:45