gpt4 book ai didi

symfony - 从 Symfony2 中的表单获取数据后克隆对象

转载 作者:行者123 更新时间:2023-12-02 16:12:55 25 4
gpt4 key购买 nike

我确信我在这里遗漏了一些非常基本的东西。

我有一个表单,当用户更新表单的字段时,我不想更新底层实体,而是想使用新值创建一个新实体。

为了克隆教义实体,我遵循指示here

所以我的代码是(假设我想克隆 id=3 的对象:

    $id = 3;
$storedBI = $this->getDoctrine()
->getRepository('AppBundle:BenefitItem')
->find($id);
$form = $this->createForm(new BenefitItemFormType(), $storedBI);

$form->handleRequest($request);

if ($form->isValid())
{
$em = $this->getDoctrine()->getManager();
$newBI = clone $form->getData();
$em->persist($newBI);
$em->flush();
}

这根本行不通。它使用从表单传递的新数据正确创建一个新对象(这是可以的),但也使用相同的新数据更新“旧”存储对象。

有什么想法吗?

最佳答案

您必须在表单创建期间克隆对象:

$form = $this->createForm(new BenefitItemFormType(), 克隆 $storedBI);

如果这不起作用,请先尝试分离您的克隆对象。

关于symfony - 从 Symfony2 中的表单获取数据后克隆对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com