Symfony2:如何为预定数量的集合项目嵌入集合?
使用一个简单的求职应用程序,用户可以在申请表上指定多个参考资料。我有一个应用实体和参考实体。应用程序->引用中有一个OneToMany关联,而引用->列表中有一个ManyToOne关联 “我的申请表”类中的代码段:Symfony2:如何为预定数量的集合项目嵌入集合?,symfony,Symfony,使用一个简单的求职应用程序,用户可以在申请表上指定多个参考资料。我有一个应用实体和参考实体。应用程序->引用中有一个OneToMany关联,而引用->列表中有一个ManyToOne关联 “我的申请表”类中的代码段: $builder ... ->add('references', 'collection', array( 'type' => new ReferenceType(), 'allow_
$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);
}
...
然后我创建应用程序表单并传入application对象
问题是如果用户留下一些空白,我根本不想考虑它们。当我将表单绑定到请求时,我需要表单组件以某种方式从集合中删除空的引用项
我似乎无法做到这一点。我尝试了收集字段类型的各种不同选项,但都不起作用。在我将请求绑定到表单之后,应用程序实体仍然有5个引用的集合,即使其中许多引用都是空值