目前我有一个表单,它从我的类别实体生成一个下拉选择:
$builder
->add('category', 'entity',
array('class' => 'TrackerMembersBundle:Category',
'property' => 'title',));
现在我想要生成复选框,我可以选择多个选项...我搜索了symfony2文档,但找不到一个简单的方法直接从我的Entity.Any想法做到这一点?
答案 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,
)
);
请注意选项中multiple
和expanded
的使用情况。
答案 2 :(得分:0)
尝试
$builder
->add('category', 'checkbox',
array('class' => 'TrackerMembersBundle:Category',
'property' => 'title',));#
http://symfony.com/doc/current/reference/forms/types/checkbox.html