2012-03-30 43 views
0

我正在symfony2 中做一個過濾器窗體,我嘗試預選一些filds。Symfony2表單選擇花費默認選擇

我有兩個選擇:

$formBuilder->add('first', 'choice', 
    array('choices' => $choiceFirst, 
    'expanded' => false, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('first')) 
)); 
$formBuilder->add('second', 'choice', 
    array('choices' => $choiceSecond, 
    'expanded' => true, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('second')))); 

對於沒有展開的第一選擇的DATAS路過網址是預選。 但不適用於擴展的第二個。

有任何方法可以從字段選擇中預選複選框嗎?

回答

1

您必須提供一組選定值作爲多選字段的數據。

編輯:答非所問,我的錯誤

嘗試提供一鍵=>布爾數組爲選中狀態取決於布爾值。

我想你只有把選中的值數組中,所以這些一個是真實的;)

+0

這就是我所做的。我給出了一個數組和數據似乎是好的,因爲如果我設置展開:false在列表中選擇數據。 我的問題是,當字段擴展數據沒有被選中 – user1014102 2012-03-30 11:02:36

+0

對不起,我做了擴大和多個混淆。我刪除了無關的答案... – AlterPHP 2012-03-30 11:09:31

+0

不,這是因爲get值是一個字符串,我的複選框值是int。所以我以前的數據看起來像:數組(707 =>'707) 而現在:數組(707 => 707) – user1014102 2012-03-30 12:09:54

1

最好的解決方案,我發現了這個問題,您只需設置的默認值,以你的對象產生之前形成。

像:$myEntity->setMyfieldchoice(1);

這樣symfony會明白這個值是默認值(我曾在一個選擇字段)。

希望得到這個幫助!

1

嘗試:

$formBuilder->add('first', 'choice', 
    array('choices' => array('0' => 'first option', '1' => 'second option'), 
    'expanded' => false, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('first')) 
)); 

,並查看:

{{ form_widget(form.first.0) }} 
{{ form_widget(form.first.1) }} 

對我的作品。