Symfony 2.8:控制器中的$ form-> getData()用于更新现有实体

时间:2018-09-26 07:51:32

标签: php forms symfony

我的控制器newAction editAction中有两个动作。我使用Symfony表单,因此在newAction中,我使用下一个代码:

$entity = $form->getData();
$this->em->persist($entity);
$this->em->flush();

用于在数据库中创建新行。

那么如何使用editAction中的另一种形式来更新现有实体?顺便说一句,在我的编辑表单中,添加了一些其他字段,并且删除了第一个表单中的某些字段。

$entity = $repo->find($id);
$entity = $form->getData();
$this->em->persist($entity);
$this->em->flush();

Ofc此代码尝试创建一个新代码。我的身材很大,我不确定使用$entity->setField($form->getField());

是个好主意

1 个答案:

答案 0 :(得分:0)

主要问题是我在创建表单时忘记添加实体

$form = $this->createForm(new MyFormType(), **$myEntity**); 

所以现在一切正常