【发布时间】:2017-10-27 07:32:13
【问题描述】:
在 Zend 2 和 Zend 3 中,我遇到了这个问题。 以下代码生成找不到“YourModule\Controller\ClassName”,因为我没有导入类 ClassName。
<?php
public function indexAction() {
$x = new ClassName() ; //I've not imported ClassName, which raise the error.
}
当这些类型的一些异常发生时,控件会转到 onDistpach (DispatchListner) 中的 catch 部分。如果我在这个 catch 块中回显 $ex->getMessage() 它会打印正确的错误消息 eg: "YourModule\Controller\ClassName" not found。
public function onDispatch(MvcEvent $e)
{
....
} catch (\Throwable $ex) {
$caughtException = $ex; //HERE
//$ex->getMessage() ;
}
但是zend渲染的最终输出如下。没有关于发生异常的信息。
An error occurred 执行过程中发生错误;
请稍后再试。
没有可用的例外
大多数其他情况下,它会打印正确的堆栈跟踪。如何配置 zend 以显示这些错误消息,而无需在 Zend-Mvc 中编辑 DispatchListner ?
编辑: 我尝试在异常之前打开 error_reporting() 和 display_errors。 还尝试尝试捕获生成异常但仍然无法正常工作的代码。 还有我的module.config。
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
...
【问题讨论】:
-
@Boratzan 你确定吗?
-
是的,我相信如果你检查这些答案,它会解决你的问题..
标签: php zend-framework2 zend-framework3