我搜索了相同内容并得到了一些答案,但没有帮助。
我试过的方法如下:
1)
在onBootstrap($ e)函数中:
$e->getViewModel()->setVariable('test_variable', 'Hello World!');
//or
$e->getViewModel()->test_variable = 'Hello World!';
2) 我在Module.php中创建了一个函数
function boforeDispatch(MvcEvent $event) {
$event->getViewModel()->setVariable('test_variable', 'Hello World!');
//or
$event->getViewModel()->test_variable = 'Hello World!';
}
并在onBootstrap($ e)函数中调用此函数
$application = $e->getApplication();
$eventManager = $application->getEventManager();
$eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'boforeDispatch'), 100);
当我在视野中尝试时
echo $test_variable;
它始终会出现undefined variable test_variable in ...
错误。
有什么想法吗?
答案 0 :(得分:0)
尝试使用渲染事件(MvcEvent::EVENT_RENDER
)代替:
public function onBootstrap($event){
$application = $event->getApplication();
$eventManager = $application->getEventManager();
$events->attach(MvcEvent::EVENT_RENDER, array($this, 'addVariablesToViewModel'), 100);
}
public function addVariablesToViewModel($event)
{
$viewModel = $this->getEvent()->getViewModel();
$viewModel->setVariables(array(
'key' => 'value',
));
}
您的视图模型可能尚未在(预)调度
上提供