我有两种符合形式:

ShoppingListForm
ShoppingListItemForm

我多次将shopplistitemform嵌入购物清单中。即购物清单包含许多项目。

因此,shopplistItemform由两个小部件组成:

item_id (checkbox) 
shopping_list_id (hidden - foreign key)

我想做的是如果对象存在并且未选中复选框,则删除相应的shopplistItem对象。

我不确定该删除将如何发生?我会使用帖子验证器查看尚未检查哪些字段?我对此有些迷失。

有帮助吗?

解决方案

我会通过过度载入ShoppingListform的UpdateObject方法并将您的自定义delete()等呼叫放入其中(确保在其中调用parent :: updateObject())来做到这一点。

根据您的实施方式,您可能还需要删除嵌入式表单及其值,以确保储蓄仍然适用于其余对象。尝试没有,但是如果您这样做,则需要清除以下内容:

unset($taintedValues['ShoppingListItem'][$key]);
unset($this->embeddedForms['ShoppingListItem'][$key]);
unset($this->validatorSchema['ShoppingListItem'][$key]);
unset($taintedFiles['ShoppingListItem'][$key]);

如果您想查看自定义updateObject方法以了解如何与值交互等:

http://www.symfony-project.org/forms/1_2/en/11-doctrine-integration#chapter_11_sub_customizing_the_updateobject_method

其他提示

在人名中,我将循环浏览现有列表项目,以查看是否在操作中检查了相应的复选框,并致电 delete() 不是这种情况的项目。我认为这不是邮政验证者的目的,我会直接在操作中执行此操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top