Doctrine orm 如何知道在刷新后刷新了哪些实体(计划同步)

Doctrine orm 如何知道在刷新后刷新了哪些实体(计划同步),doctrine-orm,event-handling,Doctrine Orm,Event Handling,我想在插入/更新/删除某些类型的实体后执行一个操作,但仅当更改在数据库中有效且提交良好时 冲水 在收听onFlush事件时,我显然可以访问计划的实体进行如下插入、更新和删除: $em->getUnitOfWork()->getScheduledEntityInsertions(); $em->getUnitOfWork()->getScheduledEntityUpdates(); $em->getUnitOfWork()->getScheduledEntit

我想在插入/更新/删除某些类型的实体后执行一个操作,但仅当更改在数据库中有效且提交良好时

冲水

在收听
onFlush
事件时,我显然可以访问计划的实体进行如下插入、更新和删除:

$em->getUnitOfWork()->getScheduledEntityInsertions();
$em->getUnitOfWork()->getScheduledEntityUpdates();
$em->getUnitOfWork()->getScheduledEntityDeletions();
但这还为时过早,因为交易尚未提交

后冲洗

当我收听
postFlush
事件时,我没有任何ScheduleIdentityInsertion,因为它已经完成(因此不再计划),我不知道刷新了哪些对象

计划的同步

挖掘之后,我注意到有一个名为
scheduledForSynchronization
private
属性,其中包含所需的信息。不幸的是,这是私人的

我想知道为什么这个属性是私有的,或者为什么它不存在任何getter(?)


感谢您抽出时间。

有很多帖子:谢谢您,但这没有帮助,我知道所有这些事件,只有当某些特定实体被刷新并且有效地完成时,我才需要触发一个操作。目前我能想象的唯一解决方案是让状态完全的订户能够记住在
onFlush
postfush
之间被刷新的实体Yep。看起来你需要一些非常具体的东西。这里有很多帖子:谢谢你,但那没有帮助,我知道所有这些事件,只有当某些特定实体被刷新并且有效地完成时,我才需要触发一个操作。目前我能想象的唯一解决方案是让状态完全的订户能够记住在
onFlush
postfush
之间被刷新的实体Yep。看起来你需要一些非常具体的东西。