删除表单元素的表单更新时实体关系设置为空

我有一个页面来记录一个与问题实体有一对多关系的调查实体,即每个调查可以有很多问题。问题由问答属性组成。

我的目标是有一个表单只显示问题元素,如果他们还没有提交并保留的答案......

我想要的表格嵌套在调查表格中,其中包含 1..n 个问题表格。

假设页面上有两个问题表单元素,姓名和年龄。如果我提交姓名并留下年龄空白,则姓名将保持不变,而年龄仍为空白。然后我回去提交年龄。年龄被持久化,name还在数据库中,但是问题表上的外键survey_id被设置为null,关系丢失。

为了隐藏答案,如果模型包含给定元素的数据,我将使用 PRE_SET_DATA 事件上的表单事件删除它们。

有没有人对在这里寻找的东西有任何建议?

我已将提交方法从处理请求更改为 $form->submit(将 clearMissing 标志设置为 false),但survey_id 仍设置为空。提交是由调查控制器完成的,我是否还必须明确告诉问题子表单不要“clearMissing”?

*编辑:我正在考虑的解决方案是在 PRE_SUBMIT 表单事件中添加回“已删除”的表单元素和数据,我认为这将确保 Doctrine 不会假设丢失的数据需要删除。我不确定这有多理智,是否有更好的方法?


犯罪嫌疑人X
浏览 126回答 1
1回答

MM们

正如所讨论的,您可以快速而粗略地从数据库中检索调查并根据用户提交的内容手动更新答案,而不是尝试使“自动”工作。我希望这有帮助。如果我发现更有用的东西,我会更新我的答案
打开App,查看更多内容
随时随地看视频慕课网APP