Error handling 如何在Zend Framework 2中向错误视图脚本传递变量?

Error handling 如何在Zend Framework 2中向错误视图脚本传递变量?,error-handling,zend-framework2,viewmodel,custom-error-pages,custom-error-handling,Error Handling,Zend Framework2,Viewmodel,Custom Error Pages,Custom Error Handling,我发现特定于框架的异常如下: public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); ... $shared

我发现特定于框架的异常如下:

public function onBootstrap(MvcEvent $e)
{
    $eventManager = $e->getApplication()->getEventManager();
    $moduleRouteListener = new ModuleRouteListener();
    $moduleRouteListener->attach($eventManager);
    ...
    $sharedManager = $e->getApplication()
        ->getEventManager()
        ->getSharedManager();
    $sm = $e->getApplication()->getServiceManager();
    $sharedManager->attach('Zend\Mvc\Application', MvcEvent::EVENT_DISPATCH_ERROR, 
        function ($e) use($sm) {
            if ($e->getParam('exception')) {
                $sm->get('Logger')
                    ->crit($e->getParam('exception'));
            }
            // trying to pass a variable
            $e->getViewModel()->setVariable('foo', 'bar');
        });
}
然后,当我尝试访问
/module/Application/view/error/index.phtml中的
$foo
时,我得到一个
注意:未定义变量:foo


如何将变量传递到错误视图脚本并在那里访问它?

在onBootstrap中,它将变量传递到布局

试试这个:

$this->layout()->foo

从onBootstrap内部,它将变量传递给布局

试试这个:

$this->layout()->foo

非常感谢你!它起作用了。但是也可以将变量传递给视图脚本的ViewModel吗?我之所以这么问,是因为我看到了一些似乎有效的例子,例如,在这些附带的答案中,。找不到他们可以直接访问变量的部分。对不起,你是对的。不过,有可能做到吗?非常感谢!它起作用了。但是也可以将变量传递给视图脚本的ViewModel吗?我之所以这么问,是因为我看到了一些似乎有效的例子,例如,在这些附带的答案中,。找不到他们可以直接访问变量的部分。对不起,你是对的。然而,有可能做到这一点吗?