2013-10-16 45 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(从数组值‘选择’,并指定额外的属性)。我根据页面加载事件中的选项值应用每个额外的属性。

相关问题