从Doctrine2事件中获取以前的集合值



是否有任何方法可以从Doctrine2事件中检测实体以前的集合值?

在EventSubscriber中,我可以从getEntityChangeSet()中获取以前的实体值,但getScheduledCollectionUpdates()在修改后总是返回当前集合

例如:

function postPersist(LifecycleEventArgs $args) {
    $entity = $args->getEntity();
    $entityManager = $args->getObjectManager();
    $uow = $entityManager->getUnitOfWork();
    $changeset = $uow->getEntityChangeSet($entity);
    $collectionUpdates = $uow->getScheduledCollectionUpdates();
    // ...
}

postPersist事件是在您的更改被持久化到数据库后激发的,因此很明显,在持久化后将不再计划任何更改(因此在postPersist上,这将是空的)。

如果要捕获计划的/挂起的更新,则应使用prePersist事件。

相关内容

  • 没有找到相关文章

最新更新