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,
)
);