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吗?我之所以这么问,是因为我看到了一些似乎有效的例子,例如,在这些附带的答案中,。找不到他们可以直接访问变量的部分。对不起,你是对的。然而,有可能做到这一点吗?