Symfony2 Doctrine插入/更新表单

时间:2012-10-28 20:45:24

标签: php symfony doctrine symfony-forms

我正在尝试撰写一个非常基本的表单,它能够插入和更新数据库中的记录。 我的问题是,每次按下“保存”按钮,都会在数据库中创建一个新行。 你能否指出我的源代码中的问题?

控制器:http://pastebin.com/YjMAdHqp

路由:http://pastebin.com/WSV6xCSw

数据库中的id列是一个自动增量整数。

感谢任何想法。

2 个答案:

答案 0 :(得分:1)

您的问题的正确答案是使用合并方法而是坚持。 e.g:

$your_entity = $form->getData();
$this->em->merge($your_entity); // MERGE not PERSIST
$this->em->flush();

您可以在official documentation

了解有关合并方法的更多信息

干杯,

答案 1 :(得分:-1)

  if ($id == 0) {
    $task = new Task();
  }

您的ID参数默认为0,并且创建了一个新任务,而不是更新现有的尝试。

hello_index:
    pattern: /hello/index/{id}
    defaults: { _controller: AcmeHelloBundle:hello:index, id:0 }

您应该分开创建和编辑/更新操作,并为每个操作创建路由。

http://symfony.com/doc/2.0/book/doctrine.html#updating-an-object