105

我有大约 40 个实体和许多双向关系。每当我使用 var_dump($user) 或任何实体时,我的浏览器都会加载太多的数组和变量数据,然后它就崩溃了。

我想知道什么问题。

数据插入正常。我可以在生产中引起问题吗?

4

9 回答 9

226

var_dump()替换为Doctrine Common提供的调试方法dump()

\Doctrine\Common\Util\Debug::dump($user);

它适用于单个对象和 Doctrine 集合,并且应该防止浏览器显示您遇到的问题。

于 2012-08-11T10:28:27.460 回答
21

格式良好:

echo '<pre>';
\Doctrine\Common\Util\Debug::dump($user, $recurciveLevelToDisplay);
echo '</pre>';
于 2013-06-28T08:25:08.917 回答
6

简单易行的例子。

var_dump(serialize($Object));
于 2015-11-13T00:08:45.710 回答
4

问题在于,在双向关系中,两个实体之间都有一个链接,因此在显示 entity1 时,var_dump 还必须打印 entity2 的所有属性,其中包括 entity1 本身给你一个循环。

于 2013-06-14T08:42:50.870 回答
4

Symfony < 2.6

您可以使用\Doctrine\Common\Util\Debug::dump($variable, $depth);它显示没有代理信息的原则输出。

Symfony > 2.6

如果您使用 symfony 2.6 或更高版本,我强烈建议您使用dump(). 它显示格式良好且彩色的输出,您可以动态扩展/隐藏行。 在此处输入图像描述

于 2016-12-06T07:37:26.483 回答
2

get_object_vars() 也改进了可视化。

echo "<pre>";
\Doctrine\Common\Util\Debug::dump(get_object_vars($user));
于 2014-09-17T17:53:15.000 回答
2

使用 Symfony 2.6,您现在可以在控制器中使用 dump($var) 并在 twig 中使用 {{ dump(var) }}。

确保将其添加到您的 AppKernal.php 文件的 array('dev', 'test') 部分。

$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
于 2015-04-30T02:17:19.460 回答
2

使用 dump($user) 你可以在 Symfony Profiler 中看到完美的结果!祝你好运

于 2016-01-28T13:34:47.910 回答
1

只需使用 echo serialize($user);

于 2015-01-10T12:31:17.147 回答