过滤要在集合字段中显示的项目

时间:2012-09-04 12:51:10

标签: php symfony symfony-forms

我有一个使用此类类型的表单:

class DespesasContainerType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('despesas', 'collection', array(
                'type' => new DespesasFamiliasType(),
                'by_reference' => false,
            ))
        ;
    }

    // ...
}

这样它会显示对象的despesas属性中的所有项目。

有没有办法过滤使用哪些项目?与query_builder字段类型上的entity选项类似的内容。

1 个答案:

答案 0 :(得分:0)

无法从FormTypeInterface开始,但您可以在将此集合传递给表单之前对其进行过滤。

另一个棘手的提示:

在您的实体上定义一个类似getFilteredDespeas的公共getter,它返回已过滤的despeas列表。在您的表单中,只需拨打字段filteredDespeas而不是despeas。这涉及您通过向您的实体添加公开setFilteredDespeas或任何其他方式来专门管理表单绑定...