2011-05-13 170 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