ZF2:禁用错误页面布局

时间:2013-02-06 11:09:03

标签: model-view-controller exception zend-framework2 zend-view

我试图在我的zf2模块中显示错误/异常页面时禁用布局

但没有任何作用

请帮助

4 个答案:

答案 0 :(得分:7)

我的Module.php中的最终解决方案

$eventManager = $e->getApplication()->getEventManager();



        $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
             $result = $e->getResult();
             $result->setTerminal(TRUE);

            });

它可以工作,只加载错误/ 404视图文件而不是布局文件

谢谢安德鲁

答案 1 :(得分:3)

如果你看看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)
{
     ....
}

答案 2 :(得分:0)

这不是你的问题,但它对其他人有帮助 在zf2

 public function indexAction()
    {    
        echo "json"
        return $this->getResponse();
    }

答案 3 :(得分:0)

最简单的方法是使用config config/autoload/local.php

return array(
    'view_manager' => array(
        'display_exceptions' => false
    )
);

添加此行可禁用异常。此外,您可以在开发服务器上使用自己的local.php