0

我正在使用以下命令删除实体:

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

图片属性是与图片实体的多对一关系。图片实体有一个函数,该函数通过 postremove 注释调用以从文件系统中物理删除图片。Flush() 操作正在执行 sql 语句。在 delete 语句之后,还会调用一个 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 [] []

当我将注释更改为 preRemove 时,一切都很好,但这不是解决方案。我正在对与图片实体相关的另一个实体执行相同的操作。

当我设置级联删除注释时,发生了同样的问题。

有谁知道我做错了什么?

非常感谢。

4

2 回答 2

2

我遇到了同样的问题,试图解决这个问题让我很头疼。我终于找到了问题symfony网站上用于处理文件上传的教程已更新以解决此问题。

于 2013-01-08T10:45:50.323 回答
1

我刚刚遇到了同样的问题,发现我的问题是因为我同时使用了 cascade={"all"}(即'remove')和 onDelete="CASCADE"。

将级联更改为“持久”解决了它,我现在能够删除具有图像关联的实体。

于 2012-11-06T12:05:07.173 回答