symfony表单生成器更新选项字段
添加选项字段后是否可以更新它symfony表单生成器更新选项字段,symfony,symfony-forms,Symfony,Symfony Forms,添加选项字段后是否可以更新它 $builder ->add('examens', 'entity', array( 'class' => 'TelegrammeExamenBundle:ExamExamen', 'property' => 'libelle', 'required' => true, 'empty_value' => 'Sélectionnez un examen',
$builder
->add('examens', 'entity', array(
'class' => 'TelegrammeExamenBundle:ExamExamen',
'property' => 'libelle',
'required' => true,
'empty_value' => 'Sélectionnez un examen',
//'data' => $this->em->getReference("TelegrammeExamenBundle:ExamExamen", 510),
'data' => null,
'query_builder' => function(ExamenRepository $r) {
return $r->getSelectList();
},
'attr' => array('class' => 'bg_white_filet_gris')
))
;
如何修改字段选项???(设置选项不存在)
您只需再次添加()。正如API文档建议的add
方法:
在表单中添加或替换子项
这可用于修改表单元素,例如在FormEvent
中
或者
FormBuilder
提供了一个setAttribute()
方法,可按如下方式使用:
$builder->get('examens')->setAttribute('property', 'test');
在我的答案中添加了另一种方法。请注意,从
FormEvent
内部不能使用后一种方法:您需要按照前一种方法中的定义重新添加表单(因为您没有可用的生成器)@DebreczeniAndrás$builder->get('examens')
返回FormBuilder
,而不是字段。因此,它设置表单属性,而不是字段属性。我无法实现它。@Stihu您是对的,它返回一个FormBuilder
,一个特定字段的实例。然后应将setAttribute
应用于该表单字段。您无法实现什么?确定,因为2.8版本setAttribute()
没有修改选项
,它修改属性
。
$builder->get('examens')->setAttribute('property', 'test');