我正在尝试学习ZF2,我需要了解一些基础知识。 我想要做的是定义所有模板中可用的某些变量。 我有一个IndexController扩展BaseController,在BaseController我试过这个:
public function onDispatch( \Zend\Mvc\MvcEvent $e ){
$this->view->superImportantArray = array('data' => ...);
}
当然这是一种ZF1方法,但不起作用。那我该怎么做?会感激任何提示。
答案 0 :(得分:1)
如果可以,请尝试并避免使用自定义基本控制器。您可以使用事件系统实现此目的。将use Zend\Mvc\MvcEvent;
放在Module.php
的顶部,然后添加:
public function onBootstrap(MvcEvent $e)
{
$eventManager->attach(MvcEvent::EVENT_RENDER, function($e) {
$layoutViewModel = $e->getViewModel();
$childViewModels = $layoutViewModel->getChildren();
if (count($childViewModels) == 0) {
// probably an AJAX request
return;
}
$viewModel = $childViewModels[0];
$viewModel->superImportantArray = array('date' => ...);
});
}