2012-06-07 49 views
0

我正與這些命令刪除的實體:的Symfony2/doctrine2沖洗createas一個選擇後刪除

$this->getEntityManager()->remove($exclusivedeal->getPicture()); 
$exclusivedeal->setPicture(); 
$this->getEntityManager()->flush(); 
$this->getEntityManager()->getConnection()->commit(); 

圖片屬性是一個多對一關係到圖像的實體。 圖片實體具有通過postremove Annotation調用的函數,用於從文件系統中物理刪除圖片。 Flush()操作正在執行sql語句。刪除語句後,也會調用select語句。這產生了以下錯誤:當我的註釋變爲刪除前

[2012-06-07 10:06:46] request.CRITICAL: Doctrine\ORM\EntityNotFoundException: Entity was not found. (uncaught exception) at C:\xampp\htdocs\forum\app\cache\dev\doctrine\orm\Proxies\__CG__DankeForumBundleEntityPicture.php line 32 [] [] 

,一切都很好,但這不是解決辦法。我正在對另一個實體進行與圖片實體相關的操作。

當我設置級聯刪除註釋,同樣的問題發生。

有沒有人知道我做錯了什麼?

非常感謝。

+1

這聽起來就是你刪除了引用文件系統映像所需的東西。爲什麼你不執行這個動作preRemoval實體本身? –

+0

你的意思是我在postRemove上執行的操作?圖片上的唯一參考是我正在使用的實體。 –

+0

因此,如果您刪除該實體,您會如何引用您的圖片? –

回答

1

我剛剛碰到這個完全相同的問題,發現我的情況是因爲我使用cascade = {「all」}(即'remove')和onDelete =「CASCADE」。

更改級聯「持久」解決了它,我現在能夠刪除與圖像關聯的實體。

2

我有同樣的問題,它給了我很多頭痛,試圖解決這個問題。我終於找到了issue。 symfony網站上的cookbook用於處理文件上傳與教條已更新以解決此問題。