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中做得更好。
那麼任何想法如何?