2016-09-26 50 views
0

問題:多個下拉列表只交出一個字符串而不是數組。symfony2 formbuilder選擇多次拋出沒有數組

我試圖在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" 

發佈請求的輸出只是一個Value2的字符串。它會被覆蓋,因爲它不是一個數組。我明白了。但爲什麼formbuilder甚至不能爲表單創建一個數組。

我已經嘗試覆蓋FULL_NAME

form_widget(form.options, `enter code here`'full_name' => '<formbuldertag>[options][]') 

,但沒有奏效。

任何想法?

回答

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

希望這有助於!