Symfony2:如何为预定数量的收集项嵌入嵌入集合?

时间:2015-03-30 15:43:04

标签: symfony

使用简单的作业应用程序应用程序,该应用程序允许用户在应用程序表单上指定多个引用我有一个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,即使很多都具有所有空值。

0 个答案:

没有答案
相关问题