我正在创建一个表单,该表单在保存时会进行更新,并在编辑时更新当前和任何相关实体(简单!),我有两个按钮,即'更新现有版本'或'创建新版本”
如果单击“创建新版本”,则基本上需要将表单中的所有内容都创建为全新版本(现有版本的副本,但版本整数增加了一个),而如果单击“更新”,它很乐意更新现有实体。
在Symfony中,该表单是使用$this->createForm(<class>, <data>)
创建的,如果我将一个新的类实体传递给数据,那么它将创建一个新的类实体,如果我传递了一个现有的实体,它将进行更新。
但是,直到处理完该请求后,我才知道该表单是用于新版本还是要更新该按钮的当前版本,这意味着该表单已经创建并初始化了。
如果是新版本,我还需要以某种方式将所有相关实体更新为新版本。
我认为这应该是相对简单的,我缺少明显的东西。
我正在使用Symfony表单集合来生成表单。
有人可以帮忙吗?
谢谢
凯文
答案 0 :(得分:0)
以防万一人们遇到这个问题。
我只是在表单处理过程中检查了按下按钮的位置,然后克隆了实体。
然后,我在实体中创建了一个__clone函数,用于处理它所具有的关系(基本上遍历了相关实体,对其进行了克隆,并将父级更改为$ this)。
就是这样,其他所有东西都正常工作