我需要保留一个名为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();
}
}
我想使用带有更新方法的项目管理器,但我不知道这是否是最好的方法。
提前致谢。