问题:多个下拉列表只是移交字符串而不是数组。
我尝试在formbuilder中使用多个下拉列表:
->add('options', 'choice', array(
'choices' => $printerOptionsDropdown,
'empty_value' => 'Optionen wählen',
'label' => 'Optionen',
'attr' => array(
'class' => 'form-control selectpicker',
'data-live-search' => true,
'multiple' => true),
'required' => false
))
使用此树枝模板:
<form action="{{ path('<form>_create', { 'id' : entity.id }) }}" name="<formForm>" id="<formForm>" method="POST" class="form-horizontal" role="form" >
<div class="form-group">
<label for="<formbuildertag>_options" class="col-sm-2 control-label">{{ form_label(form.options) }}</label>
<div class="col-sm-4">
{{ form_widget(form.options) }}{{ form_errors(form.options) }}
</div>
</div>
一切都很好。我可以选择多个选项。 但是当我提交表单时,它只会移交一个不是数组的字符串。
<formbuildertag>[options]:"Value1"
<formbuildertag>[options]:"Value2"
post请求的输出只是Value2的字符串。它被覆盖,因为它不是一个数组。我明白了。但是为什么formbuilder甚至没有为表单创建一个数组。
我已经尝试覆盖full_name
form_widget(form.options, `enter code here`'full_name' => '<formbuldertag>[options][]')
但它不起作用。
有什么想法吗?
答案 0 :(得分:1)
您必须将multiple
选项定义为true。你在attr
中拥有它。改变如下:
->add('options', 'choice', array(
'choices' => $printerOptionsDropdown,
'empty_value' => 'Optionen wählen',
'label' => 'Optionen',
'attr' => array(
'class' => 'form-control selectpicker',
'data-live-search' => true,
'required' => false,
'multiple' => true
))
希望这有帮助!