0
在ZF2中,可以使用阵列和数据库组合(扩展)导航项目吗?zf2导航从控制器注入页面
我有根导航(深度级别1和2),该配置驻留为php文件navigation.config.php。现在有一个基于产品类别的页面,该页面将为每个类别创建一个带有子页面的导航。
module
\-submodule
\-category 1
\-add
\-edit
\-form
\-list
\- ...
\-category n
每当我添加一个类别时,将所有数据写入数组是很麻烦的。相反,它会很好如果我通过从db读取类别来加载它,而不是创建一个递归的mvc页面来进行导航。
所有类别actualy调用相同的控制器,但为了UI的缘故,我必须使它如上所述。通过使用控制器创建页面
我测试
public function listAction() {
$this->addPages(
array(
array(
'label' => 'R12313',
'route' => 'home',
'pages' => array(
array(
'label' => 'R12313cccc',
'route' => 'home',
)
)
),
array(
'label' => 'R123132',
'route' => 'home',
)
)
);
}
public function addPages($pages = array(), $min = 1, $max = 2) {
$navigation = $this->services->get('viewhelpermanager')->get('navigation');
$navigation = $navigation('navigation');
$active = $navigation->findActive($navigation->getContainer(), $min, $max);
if (isset($active['page'])) {
$active = $active['page'];
$pages = array('route' => 'home', 'pages' => $pages);
$newpage = \Zend\Navigation\Page\AbstractPage::factory($pages);
$newpage->setDefaultRouter($this->services->get('router'));
$active->addPages($newpage);
}
}
它出来很好,但后来我无法将菜单设置为活动上点击自己和父母。 也许在Module bootstrap中做得更好。
那么任何想法如何?