我正在尝试使用symfony2表单构建器向选项元素添加自定义属性,我不确定它是否可以原生。如果不是我需要知道如何添加功能。
以下面的形式为例:
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',
)
));
}
}
但那不起作用。所以对此的任何帮助将不胜感激。
答案 0 :(得分:6)
自 2.7 以来choice
可能。看看here。使用choice_attr
。
答案 1 :(得分:0)
您可能需要创建自己的小部件,从“选择”小部件扩展。
因此,您可以在选项上使用自定义渲染,并且您将能够在每个选项的属性中设置您想要的任何内容。
NB:我看起来一样,但是使用了简单的“选择”,在模板中我添加了带有额外选项的JS var(带有'select'值的数组,并指定了额外的属性)。我根据页面加载事件中的选项值应用每个额外的属性。答案 2 :(得分:-1)
请在下面的代码中使用symfony2中设置的属性
->add('birthdate', 'date',array(
'input' => 'datetime',
'widget' => 'single_text',
'attr' => array('class'=>'calendar')
))