我正在尝试使用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',
)
));
}
}
但这行不通。因此,对此的任何帮助将不胜感激。
自 2.7 以来,choice
是可能的。看这里。随着choice_attr
.
您可能需要创建自己的小部件,从"选择"小部件扩展而来。
因此,您将能够在选项上使用自定义渲染,并且您将能够在每个选项的属性中设置所需的任何内容。
注意:我看起来是一样的,但使用了简单的"选择",并且在模板中我添加了带有额外选项的 JS var(带有"选择"中的值的数组,并指定了额外的属性)。我根据页面加载事件上选项的值应用每个额外的属性。
请使用下面的代码在 symfony2 中设置属性
->add('birthdate', 'date',array(
'input' => 'datetime',
'widget' => 'single_text',
'attr' => array('class'=>'calendar')
))