在Symfony 2.6上与Doctrine合作是否有办法“检测”已持久存在的实体的事务回滚?
我最初的问题:我创建了代表文件系统上文件的新实体。在$em->persist()这些实体上,/temp通过Doctrine的PrePersist事件将文件从目录移动到最终目标。如果稍后要在代码中回滚我正在处理的事务,则不会在数据库上创建任何行,但是$em->rollback()每次执行此操作时,文件都会流连忘返,我必须在使用额外的代码后手动删除它们。因此,我认为可能会有一个事件可以用来检测某个实体已从变更列表或“回滚”中“删除”,因此我可以删除该实体的相关文件。
还:PostPersist或PostFlush事件似乎可以解决我的问题,但是如果我有多$em->flush()条指令,并且代码中下面的一条引发异常,而我$em->rollback()在整个事务中都这样做,则仍然会得到文件