使用简单的作业应用程序应用程序,该应用程序允许用户在应用程序表单上指定多个引用我有一个Application
实体和Reference
实体。应用程序中存在OneToMany
关联 - >引用和参考中的ManyToOne
关联 - >列表。
我的Application
表单类的片段:
$builder
...
->add('references', 'collection', array(
'type' => new ReferenceType(),
'allow_add' => false,
'allow_delete' => false,
'by_reference' => false,
'delete_empty' => true,
'empty_data' => null,
))
...
;
在呈现申请表时,我想提供5个嵌入式参考表格(用户最多可以提交5个参考表格)。我不希望按钮动态添加或删除引用(一个原因是我希望这个表单不用javascript工作)。
为此,我在控制器中完成了这项工作:
...
$application = new Application();
for ($i = 0; $i < 5; $i++) {
$reference = new Reference();
$application->addReference($reference);
}
...
然后我创建应用程序表单并传入应用程序对象。
问题是如果用户留下一些空白,我根本不想考虑它们。当我将表单绑定到请求时,我需要表单组件以某种方式删除集合中空的Reference
项。
我似乎无法做到这一点。我正在为collection
字段类型尝试各种不同的选项,但没有任何作用。将请求绑定到表单后,Application
实体的集合仍为5 References
,即使很多都具有所有空值。