2013-02-11 65 views
1

這段代碼令我瘋狂。Doctrine2和Symfony2 - 爲什麼這個getter把所有的東西搞亂了?

假設我完成了所有這些操作的實體擁有我用getter調用的所有成員(或者在類文件上的db上,而且在db上插入了所有的值)。

$this->logger->debug('INV ROOM RATES CAPACITY - $ROOM ID: '.$camera->getId()); 
$this->logger->debug('INV ROOM RATES CAPACITY - $ROOMCAPACITY: .$camera->getCapienza()); 
$this->logger->debug('INV ROOM RATES CAPACITY - CAMERA DB ID: '.$camera->getId()); 

此輸出以下

[2013-02-11 14:17:32] app.DEBUG: INV ROOM RATES CAPACITY - $ROOM ID: 14 [] [] 
[2013-02-11 14:17:32] app.DEBUG: INV ROOM RATES CAPACITY - $ROOMCAPACITY: [] [] 
[2013-02-11 14:17:32] app.DEBUG: INV ROOM RATES CAPACITY - CAMERA DB ID: [] [] 

似乎->getCapienza()方法是搞亂所有的東西(在同一對象上秒消氣,不返回前值)。顯然,沒有錯誤或例外引發。

這是怎麼回事嗎?有任何想法嗎?因爲小時我卡....

編輯

public function getCapienza() 
{ 
    return $this->capienza; 
} 
+0

你可以發佈'getCapienza()'代碼嗎? – 2013-02-11 13:33:17

+0

@PeterM:是什麼學說設置自己,所以是一個類成員的回報,但好的,我會更新。 查看更新 – DonCallisto 2013-02-11 13:35:39

+0

您是否嘗試記錄到您的數據庫的SQL查詢? – Ocramius 2013-02-11 13:38:22

回答

1

既然你剛纔告訴我,你有時會清除EntityManager的,我挖進去遠一點。

這是一個已知問題,將在合併https://github.com/doctrine/doctrine2/pull/406時在Doctrine ORM 2.4中修復。

問題是因爲下面的一段代碼:https://github.com/doctrine/doctrine2/blob/2.3.2/lib/Doctrine/ORM/UnitOfWork.php#L1724-L1780

基本上,這是不可能的合併或通常使用從一個EntityManager分離代理(你應該有之前延遲加載它們)。

遇到與http://www.doctrine-project.org/jira/browse/DDC-1734

相關的臨時解決方案的問題是重新獲取數據要使用的,而不是回收分離的情況。

+0

哇....謝謝你,我會看看這個材料。很有幫助! :) – DonCallisto 2013-02-11 14:13:35

相關問題