ZF2 2.5不总是显示完整的错误消息

问题描述:

因为我更新的Zend框架2.5.3版本和PHP 7.0的版本,我并不总是如果出现异常得到完整的错误消息。ZF2 2.5不总是显示完整的错误消息

例如:异常发生,我可以得到异常消息的唯一方法是通过使用调试器(类别:ExceptionStrategy,行:121):

enter image description here

在前端,只有一个通用显示错误消息:

enter image description here 我已经打开了PHP错误报告(在我local.php和php.ini中):

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 

奇怪的是,有时我会得到完整的错误消息,包括堆栈跟踪和我需要的所有调试信息,但有时候我只能得到一般的错误消息。

我希望它看起来像这样:

enter image description here

已经有人经历了这种行为?这是正常的吗?

好吧,现在我找到了。这个问题在我的错误模板,因为有一个if语句用来检查是否异常是异常的一个实例:

<?php if(isset($this->exception) && $this->exception instanceof Exception): ?> 

由于PHP 7大多数错误与错误异常报告,所以我不得不如果延长 - 这样的陈述:

<?php if(isset($this->exception) && ($this->exception instanceof Exception || $this->exception instanceof Error)): ?> 

不知道这是否会导致您的问题,但无论如何值得一提。

您必须配置您的视图管理器显示/渲染例外。你可以阅读更多关于如何在ZF2 documentation here内配置你的视图渲染器。

有视图管理器配置中的专用键:

'display_exceptions' => true, 
+0

我已经将display_exceptions设置为true。即使异常发生在同一个动作中,它有时会给我完整的堆栈跟踪,有时却不会 – Sepultura