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