我有一个查询输出一些非常不方便的错误消息:
致命错误:未捕获的异常' Doctrine \ ORM \ Query \ QueryException' 使用消息' SELECT p,e,c FROM Entity \ Event e LEFT JOIN e.place p INNER JOIN e.categories c与c成员:cat WHERE(e.dateStart BETWEEN:来自AND:to)AND(p.latitude BETWEEN:minLat AND:maxLat) AND(p.latitude BETWEEN:minLat AND:maxLat)AND(p.latitude BETWEEN :minLat AND:maxLat)AND(p.longitude BETWEEN:minLng AND:maxLng) 订购e.dateStart ASC'在 /Users/YohannM/Sites/meetmyfriends-back/application/libraries/Doctrine/ORM/Query/QueryException.php:39Stack 跟踪:#0 /Users/YohannM/Sites/meetmyfriends-back/application/libraries/Doctrine/ORM/Query/Parser.php(429): Doctrine \ ORM \ Query \ QueryException :: dqlError(' SELECT p,e,c ...')#1 /Users/YohannM/Sites/meetmyfriends-back/application/libraries/Doctrine/ORM/Query/Parser.php(528): Doctrine \ ORM \ Query \ Parser-> semanticalError('':cat'不是d ...', 阵列)#2 /Users/YohannM/Sites/meetmyfriends-back/application/libraries/Doctrine/ORM/Query/Parser.php(233): Doctrine \ ORM \ Query \ Parser-> _processDeferred in /Users/YohannM/Sites/meetmyfriends-back/application/libraries/Doctrine/ORM/Query/QueryException.php 第49行
正如您所看到的,由于我的错误被截断,因此调试非常不方便:Parser->semanticalError('':cat' is not d...',
。
我试图破坏这种情况,但是因为返回的结果超过了1GB,Chrome崩溃了!
所以我的问题是,如何很好地输出错误。 我不使用symfony2但使用Codeingniter
由于
答案 0 :(得分:1)
您不应使用vardump
转储异常。许多Doctrine类是相互关联的,因此,当您尝试vardump
异常时,它会创建一个递归,这就是您的浏览器耗尽可用内存和崩溃的原因。
Doctrine有一个实用程序,允许您转储相互链接的对象并指定递归级别。例如,要将对象和所有链接对象转储到最多5个级别,请使用以下命令:
\Doctrine\Common\Util\Debug::dump($object, 5);
默认深度级别为2.更多信息 - http://www.doctrine-project.org/api/common/2.4/class-Doctrine.Common.Util.Debug.html