Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
symfony表单生成器更新选项字段_Symfony_Symfony Forms - Fatal编程技术网

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');