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

时间:2016-05-16 04:33:41

标签: events collections doctrine-orm

有没有办法从Doctrine2事件中检测实体以前的集合值?

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

例如:

function postPersist(LifecycleEventArgs $args) {
    $entity = $args->getEntity();
    $entityManager = $args->getObjectManager();

    $uow = $entityManager->getUnitOfWork();
    $changeset = $uow->getEntityChangeSet($entity);
    $collectionUpdates = $uow->getScheduledCollectionUpdates();
    // ...
}

1 个答案:

答案 0 :(得分:0)

在您的更改持久保存到数据库后会触发postPersist事件,因此显然在保留后不会再安排任何更改(因此postPersist这将是空的。)

如果要捕获预定/待定更新,则应使用prePersist事件。