我對ZF2中的菜單有疑問。ZF2不同控制器中的不同菜單
我有一個模塊,和兩個控制器,例如。在佈局我可以使菜單:
<?php echo $this->navigation()->menu('mainMenu'); ?>
<?php echo $this->navigation()->menu('settingsMenu'); ?>
但我想使它們分別取決於電流控制器和佈局必須是這樣的:
$this->menu;
如何註冊變量「菜單「作爲取決於控制器的菜單。 我試圖用「onBootstrap」方法來做,但我失敗了。
我就是這麼做的:
Module.php:
public function onBootstrap(MvcEvent $e)
{
$e->getApplication()->getEventManager()->attach(MvcEvent::EVENT_DISPATCH, array($this, 'headMenuAttach'));
}
public function headMenuAttach(MvcEvent $e)
{
$controller = $e->getTarget();
if (method_exists($controller, 'getHeadMenu')) {
$menu = $controller->getHeadMenu();
$controller->layout()->setVariable('MainMenu', $menu);
}
}
佈局:
$this->navigation()->menu($this->MainMenu);
控制器:
public function getHeadMenu()
{
return 'settingsMenu';
}
ZF2方式正確嗎? :)
我已經有兩個對象:'mainMenu'和'settingsMenu'在ServiceManager中註冊。但我無法理解如何在視圖中註冊「菜單」以根據控制器包含所需的菜單。 – dima 2013-04-24 12:44:53