2013-10-16 79 views
7

我想添加自定義屬性使用Symfony2的表單生成器的IM即時通訊不知道這是可能的本身的選項元素。如果不是,我需要知道如何添加功能。如何添加自定義屬性選項元素symfony的2表單生成

採取以下形式爲例:

class FooForm extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('user','choice',array(
      'choices' => array(
       'designers'=>'designers', 
       '1'=>'mike', 
       '2'=>'carroll', 
       'developers'=>'developers', 
       '3'=>'chase', 
       '4'=>'brett', 
       '5'=>'jordan', 
      ) 
     )); 
    } 
} 

然後渲染當我需要它看起來像:

<select> 
    <option value="" disabled="disabled">designers</option> 
    <option value="1">mike</option> 
    <option value="2">carroll</option> 
    <option value="" disabled="disabled">developers</option> 
    <option value="3">chase</option> 
    <option value="4">brett</option> 
    <option value="5">jordan</option> 
</select> 

什麼,我會想到會是這樣的:

class FooForm extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('user','choice',array(
      'choices' => array(
       'designers'=>array(
         'label'=>'designers', 
         'attr'=>arrry('disabled'=>'disabled') 
       ), 
       '1'=>'mike', 
       '2'=>'carroll', 
       'developers'=>array(
         'label'=>'developers', 
         'attr'=>arrry('disabled'=>'disabled') 
       ), 
       '3'=>'chase', 
       '4'=>'brett', 
       '5'=>'jordan', 
      ) 
     )); 
    } 
} 

但這並不奏效。所以對此的任何幫助將不勝感激。

+1

您是否需要在選項中添加屬性,或者您想將選項分組?看起來你正在試圖將他們分組。 –

+0

兩者,我發現源中的一些分組的東西不知道該怎麼做。但我也需要爲選項添加一些「data-id」屬性 – Chausser

+2

選項上的屬性不受支持。如果構建一個嵌套的值數組,您可以創建一組選項(該鍵是組的名稱)。如果你確實需要添加「data-id」的方法,你應該創建一個新的FormType來擴展[Entity form type](http://symfony.com/doc/current/reference/forms/types/entity.html )與自定義模板。 –

回答

6

其可能爲choice2.7。看看here。用choice_attr

+1

2年後,我需要它添加它。感謝您更新它 – Chausser

-1

請使用如下代碼屬性中的Symfony2

->add('birthdate', 'date',array(
     'input' => 'datetime', 
     'widget' => 'single_text', 
     'attr' => array('class'=>'calendar') 
)) 
+0

這不回答這個問題,我一直在尋找一個將選項添加到選項字段中的每個選項的方法。不在父領域本身。 – Chausser

0

您可能需要創建自己的控件,從「選擇」窗口小部件擴展設置。

所以,你就可以使用自定義的呈現在你的選擇,你就可以不管你在屬性中每個選項要設置。

注:我一直在尋找相同的,但以前用過簡單的‘選擇’,並在模板中,我添加了額外的選項JS VAR(從數組值‘選擇’,並指定額外的屬性)。我根據頁面加載事件中的選項值應用每個額外的屬性。

相關問題