Model view controller ZF2:禁用错误页面布局
我试图在zf2模块中显示错误/异常页面时禁用布局 但什么都不管用Model view controller ZF2:禁用错误页面布局,model-view-controller,exception,zend-framework2,zend-view,Model View Controller,Exception,Zend Framework2,Zend View,我试图在zf2模块中显示错误/异常页面时禁用布局 但什么都不管用 请帮助如果您查看Zend Framework 2 MVC模块,您将看到这方面的可能性 DispatchListener.php try { $return = $controller->dispatch($request, $response); } catch (\Exception $ex) { $e->setError($application::ERROR_EXC
请帮助如果您查看Zend Framework 2 MVC模块,您将看到这方面的可能性 DispatchListener.php
try {
$return = $controller->dispatch($request, $response);
} catch (\Exception $ex) {
$e->setError($application::ERROR_EXCEPTION)
->setController($controllerName)
->setControllerClass(get_class($controller))
->setParam('exception', $ex);
// look here...
$results = $events->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $e);
$return = $results->last();
if (! $return) {
$return = $e->getResult();
}
}
您可以看到它们是MvcEvent,当您在控制器中抛出异常时,会触发该事件,还有一些其他进程附加到此事件
您可以将一个方法附加到此事件并执行任何您想要的操作
以ExceptionStrategy.php为例
public function prepareExceptionViewModel(MvcEvent $e)
{
....
}
如果您查看Zend Framework 2 MVC模块,您将看到这方面的可能性 DispatchListener.php
try {
$return = $controller->dispatch($request, $response);
} catch (\Exception $ex) {
$e->setError($application::ERROR_EXCEPTION)
->setController($controllerName)
->setControllerClass(get_class($controller))
->setParam('exception', $ex);
// look here...
$results = $events->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $e);
$return = $results->last();
if (! $return) {
$return = $e->getResult();
}
}
您可以看到它们是MvcEvent,当您在控制器中抛出异常时,会触发该事件,还有一些其他进程附加到此事件
您可以将一个方法附加到此事件并执行任何您想要的操作
以ExceptionStrategy.php为例
public function prepareExceptionViewModel(MvcEvent $e)
{
....
}
mymodule.php中的最终解决方案
$eventManager = $e->getApplication()->getEventManager();
$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
$result = $e->getResult();
$result->setTerminal(TRUE);
});
它工作正常,只加载错误/404视图文件,不加载布局文件
感谢andrewmy Module.php中的最终解决方案
$eventManager = $e->getApplication()->getEventManager();
$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
$result = $e->getResult();
$result->setTerminal(TRUE);
});
它工作正常,只加载错误/404视图文件,不加载布局文件
谢谢andrew,这不是您的ans,但它会帮助其他人 在zf2中
这不是你的ans,但它会帮助其他人 在zf2中
最简单的方法是使用config
config/autoload/local.php
return array(
'view_manager' => array(
'display_exceptions' => false
)
);
添加此行将禁用异常。此外,您可以在开发服务器上使用自己的
local.php
。最简单的方法是使用configconfig/autoload/local.php
return array(
'view_manager' => array(
'display_exceptions' => false
)
);
添加此行将禁用异常。此外,您还可以在开发服务器上使用自己的
local.php
。因此,如果我在我的module.php引导函数中覆盖EVENT\u DISPATCH\u ERROR并禁用布局,该布局会起作用吗?如果我在module.php引导函数中覆盖EVENT_DISPATCH_ERROR并禁用布局,那么如何禁用布局呢?如何禁用布局dispatch.error事件在我的案例中从未触发(我使用的是github的zf2框架),尽管显示了404错误。有什么想法吗?在我的例子中,dispatch.error事件从未触发过(我使用的是github的zf2框架),尽管显示了404错误。有什么想法吗?