如何从zf2中的Module.php发送数据进行查看

时间:2016-04-06 09:12:46

标签: php zend-framework2

我搜索了相同内容并得到了一些答案,但没有帮助。

我试过的方法如下:

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 ...错误。

有什么想法吗?

1 个答案:

答案 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',
    ));
}

您的视图模型可能尚未在(预)调度

上提供