我想编写一个非常基本的形式,它能够插入并更新数据库中的记录。 我的问题是,每次按保存按钮时,都会在数据库中创建一个新行。 你能指点我的源代码中的问题吗?Symfony2学说插入/更新表格
控制器:http://pastebin.com/YjMAdHqp
路由:http://pastebin.com/WSV6xCSw
在数据库中的ID列是一个自动递增的整数。
感谢您的任何想法。
我想编写一个非常基本的形式,它能够插入并更新数据库中的记录。 我的问题是,每次按保存按钮时,都会在数据库中创建一个新行。 你能指点我的源代码中的问题吗?Symfony2学说插入/更新表格
控制器:http://pastebin.com/YjMAdHqp
路由:http://pastebin.com/WSV6xCSw
在数据库中的ID列是一个自动递增的整数。
感谢您的任何想法。
if ($id == 0) {
$task = new Task();
}
您的ID参数默认为0,并且创建新的任务而不是更新现有的tast。
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
你的问题的正确答案是使用合并方法,而不是坚持。例如: -
$your_entity = $form->getData();
$this->em->merge($your_entity); // MERGE not PERSIST
$this->em->flush();
干杯阅读更多关于合并方法,