稍后的文档设置实体ID

问题描述 投票:0回答:1

我有一个应用程序,我想在其中编辑现有的实体,但是所有更改仅应在用户明确单击“保存”后进行。因此,当他进行编辑时,原件没有任何变化。

通常,这不会有什么问题,但是由于我要保存对Ajax而不是Symfony的更改,因此我需要解决该问题。

它工作得很好,除了应该将原始实体的ID写入已编辑实体的部分(保存更改时,原始实体被删除了。)

起初我以为我会将所有字段从编辑后的实体复制到原始实体中,但是很可能一旦添加了字段,没人会告诉应用程序也将这些字段也复制过来。

以下是相关代码:

$editedEntity->setId($originalEntity->getId());

$em = $this->getDoctrine()->getManager();
$em->remove($originalEntity);
$em->flush();

Tl; dr

如何将实体的ID复制到另一个ID?

symfony doctrine
1个回答
0
投票

您必须存储ID,删除并刷新旧ID,然后将ID设置为新实体。

$originalEntityId = $originalEntity->getId();

$em = $this->getDoctrine()->getManager();
$em->remove($originalEntity);
$em->flush();

$editedEntity->setId($originalEntityId);
$em->flush();

© www.soinside.com 2019 - 2024. All rights reserved.