Forms Symfony2表单:生成复选框

Forms Symfony2表单:生成复选框,forms,symfony,twig,Forms,Symfony,Twig,目前我有一个表单,它从我的类别实体生成下拉选择: $builder ->add('category', 'entity', array('class' => 'TrackerMembersBundle:Category', 'property' => 'title',)); 现在我想生成复选框,在这里我可以选择多个选项…我搜索了symfony

目前我有一个表单,它从我的类别实体生成下拉选择:

        $builder
            ->add('category', 'entity',
                    array('class' => 'TrackerMembersBundle:Category',
                            'property' => 'title',));

现在我想生成复选框,在这里我可以选择多个选项…我搜索了symfony2文档,但找不到一种简单的方法直接从我的实体中进行操作。有什么想法吗?

'multiple'=>true
添加到选项数组(类和属性所在的最后一个数组)中可以进行多选

然后您可以使用覆盖choice_小部件块

类似的方法可能会奏效:

{% block choice_widget %}
{% spaceless %}
    {% for choice, label in choices %}
        <label>
            <input type="checkbox" value="{{ choice }}"{% if _form_is_choice_selected(form, choice) %} selected="selected"{% endif %}>
            {{ label|trans }}
        </label>
    {% endfor %}
{% endspaceless %}
{% endblock choice_widget %}
{%block choice\u widget%}
{%spaceless%}
{%用于选项,标签位于选项%}
{{label | trans}}
{%endfor%}
{%endspaceless%}
{%endblock选项\小部件%}
试试看


因为
EntityType
有父
选项类型
,所以您可以使用
选项
类型中的任何选项

在您的情况下,按以下方式配置
类别
字段将显示复选框:

$builder
    ->add('category', 'entity', array(
        'class' => 'TrackerMembersBundle:Category',
        'property' => 'title',
        'multiple' => true,
        'expanded' => true,
    )
);

注意选项中的
multiple
expanded
的用法。

我之前尝试过这个,我得到:选项“class”、“property”、“multiple”不存在这不起作用。他仍然需要
实体
表单类型,而不是
复选框
类型。倍数和扩展对下拉列表没有任何影响。这不正常:)在回答您之前,我在自己的项目中进行了测试,效果很好。你有错误信息还是什么?
$builder
    ->add('category', 'entity', array(
        'class' => 'TrackerMembersBundle:Category',
        'property' => 'title',
        'multiple' => true,
        'expanded' => true,
    )
);