Symfony2表单:生成复选框

Con*_*nce 2 forms symfony twig

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

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

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

Sel*_*aek 11

添加'multiple' => true到选项数组(类和属性的最后一个)为您提供多选.

然后你可以使用表单主题覆盖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 %}
Run Code Online (Sandbox Code Playgroud)


Flo*_*ian 10

因为EntityType有父级ChoiceType,您可以使用该choice类型中的任何选项.

在您的情况下,将category字段配置为以下将呈现复选框:

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

请注意选项中multipleAND 的用法expanded.