symfony - 如何保留实体的先前版本?

标签 symfony doctrine-orm

我需要保留名为Item的实体的先前版本。当我更新它时,我将创建一个具有相同 id 但具有新版本号的新实体。我尝试使用监听器,但这样我无法在preUpdate方法中保留新项目(无限循环)。

public function preUpdate(LifecycleEventArgs $args)
{
    $em = $args->getEntityManager();
    $entity = $args->getEntity();

    if ($entity instanceof Item) {

        // Create a new version of the current item
        $item = new Item();
        $item->setId(($entity->getId());
        $item->setVersion($entity->getVersion() + 1);
        $item->setSubject($entity->getSubject());
        $item->setDetail($entity->getDetail());
        $item->setPriority($entity->getPriority());
        $item->setStatus($entity->getStatus());
        $item->setPlannedAt($entity->getPlannedAt());
        $item->setDueAt($entity->getDueAt());
        $item->setValidationToken($entity->getValidationToken());
        $item->setType($entity->getType());

        $em->persist($item);
        $em->flush();
    }
}

我想使用带有更新方法的项目管理器,但我不知道这是否是最好的方法。

提前致谢。

最佳答案

最后,我使用 DoctrineExtensions 的可记录扩展名由StofDoctrineExtensionsBundle提供

谢谢kubaLee Davis寻求您的帮助!

关于symfony - 如何保留实体的先前版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617580/

相关文章:

sql - Doctrine 中两列的唯一值

php - Symfony - 使用命令运行 Phing 任务

php - Symfony2 表单验证器 - 刷新前比较旧值和新值

php - 如何在 zend framework 2 中实现 beberlei doctrine 扩展

Symfony 从实体获取值

symfony - Doctrine 需要在 OneToMany 单向关联中使用mappedBy

xml - FOSRestBundle 输出错误的 xml

symfony - serviceContainer 在 symfony 2.8 中返回一个 IdentityTranslator

php - Doctrine 2.2/Symfony 2.2 : Persisting an entity with a composite foreign key

php - Symfony - twig - 自动加载器预期类