Doctrine orm docrtine 2版本控制关联

Doctrine orm docrtine 2版本控制关联,doctrine-orm,associations,versioning,Doctrine Orm,Associations,Versioning,我需要为一些实体实现版本控制 我有一个实体“地图”,它与“点”实体有一个单一的关联。 “地图”和“地点”应该是可版本的 应该更可能显示“地图”的旧版本,上面有所有相关的“点” 因此,在旧版本中,“地图”本身可能有另一个背景图像,但相关“点”的位置或数量也可能不同 我喜欢AuditLog的这种方法(在页面末尾): 我想知道如何处理可版本实体的关联 例如: 当“地图”更改时,会保存新的地图版本,但与点的关联如何? 当一个“点”改变时,它的父“地图”会怎样呢 在构建新版“地图”时: -我怎么才能知道

我需要为一些实体实现版本控制

我有一个实体“地图”,它与“点”实体有一个单一的关联。 “地图”和“地点”应该是可版本的

应该更可能显示“地图”的旧版本,上面有所有相关的“点”

因此,在旧版本中,“地图”本身可能有另一个背景图像,但相关“点”的位置或数量也可能不同

我喜欢AuditLog的这种方法(在页面末尾):

我想知道如何处理可版本实体的关联

例如:

当“地图”更改时,会保存新的地图版本,但与点的关联如何? 当一个“点”改变时,它的父“地图”会怎样呢

在构建新版“地图”时: -我怎么才能知道它有关联? -我怎样才能确定关联也是可版本的 -我如何处理这些关系

即使关联不可版本化,如果我更改关联的不可版本化实体,我也会更改“Map”的旧版本,因为它们仍然是关联的

是否有人有经验或想法如何使用条令2.1管理

[php]
class AuditListener implements EventSubscriber
{
    public function getSubscribedEvents()
    {
        return array(Events::onFlush);
    }

    public function onFlush(OnFlushEventArgs $args)
    {
        $em = $args->getEntityManager();
        $uow = $em->getUnitOfWork();

        $changeDate = new DateTime("now");
        $class = $em->getClassMetadata('DoctrineExtensions\Auditable\AuditEntry');

        foreach ($uow->getScheduledEntityUpdates() AS $entity) {
            if ($entity instanceof Auditable) {
                $changeSet = $uow->getEntityChangeSet($entity);

                foreach ($changeSet AS $field => $vals) {
                    list($oldValue, $newValue) = $vals;
                    $audit = new AuditEntry(
                        $entity->getResourceName(),
                        $entity->getId(),
                        $oldValue,
                        $newValue,
                        $changeDate
                    );

                    $em->persist($audit);
                    $em->getUnitOfWork()
                       ->computeChangeSet($class, $audit);
                }
            }
        }
    }
}