Symfony2表单:生成复选框

时间:2012-02-27 14:04:10

标签: forms symfony twig

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

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

现在我想要生成复选框,我可以选择多个选项...我搜索了symfony2文档,但找不到一个简单的方法直接从我的Entity.Any想法做到这一点?

3 个答案:

答案 0 :(得分:11)

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

然后你可以使用form theming覆盖choice_widget块。

这样的事可能有用:

{% 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 %}

答案 1 :(得分:10)

由于EntityType拥有ChoiceType的父级,因此您可以使用choice类型中的任何选项。

在您的情况下,如下配置category字段会呈现复选框:

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

请注意选项中multipleexpanded的使用情况。

答案 2 :(得分:0)

尝试

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

http://symfony.com/doc/current/reference/forms/types/checkbox.html