2011-05-13 117 views
1

我目前正在为我的项目使用Symfony 1.2和Doctrine,我有一个关于Doctrine_collection对象的问题。打印Doctrine_Collection对象?

说我想要检索的元素ID为1的相关信息在我的表测试

$test = Doctrine::getTable('Test')->find(1); 

精细它的工作,我可以打印此对象的不同属性,没有这里的问题

echo $test->name; 

我也可以打印整个对象在一个阵列中

print_r($test->toArray()); 

但是,如果我尝试直接打印t他doctrine_collection对象

print_r($test) 

我得到一个巨大的数组,有很多奇怪的值,如配置参数和东西。这是一种正常的行为吗?

+0

的确是这样,你的print_r'$ test'这是Doctrine_Collection'的'一个实例,并在其下方您正在寻找多学说属性 – tawfekov 2011-05-13 08:56:11

+0

感谢您的快速回答,而且看起来比'print_r'' Doctrine_collection'的结果是无限循环,你知道为什么吗? – 2011-05-13 09:06:48

回答

3

避免打印Doctrine_CollectionDoctrine_Record,内部使用有许多属性对您无关紧要,您还可以看到关系,如果相关记录具有反向关系,则会导致递归关系。在收集或记录上使用toArray()是最佳做法。

+0

好吧,我会坚持下去,谢谢;) – 2011-05-13 09:45:15

+0

+1。谢谢,我过去可以使用toArray(),并没有意识到它是可用的。 – ybull 2011-05-13 18:20:02

0

您可以使用以下方法来打印的对象好看格式:

echo "<pre>"; 
    \Doctrine\Common\Util\Debug::dump($doctrineObject); 
+0

呃......你知道这个问题差不多4年了,是关于教义1而不是教义2? – cypherabe 2015-02-04 11:19:52

+0

仍然是作为谷歌的第一个答案,所以它是有用的:) – rels 2017-03-02 15:17:40