有没有办法从Doctrine2事件中检测实体以前的集合值?
在EventSubscriber中,我可以从getEntityChangeSet()
获取以前的实体值,但getScheduledCollectionUpdates()
始终在修改后返回当前集合
例如:
function postPersist(LifecycleEventArgs $args) {
$entity = $args->getEntity();
$entityManager = $args->getObjectManager();
$uow = $entityManager->getUnitOfWork();
$changeset = $uow->getEntityChangeSet($entity);
$collectionUpdates = $uow->getScheduledCollectionUpdates();
// ...
}
答案 0 :(得分:0)
在您的更改持久保存到数据库后会触发postPersist
事件,因此显然在保留后不会再安排任何更改(因此postPersist
这将是空的。)
如果要捕获预定/待定更新,则应使用prePersist
事件。