Php Symfony ChoiceType动态填充选项并初始化空选项数组

Php Symfony ChoiceType动态填充选项并初始化空选项数组,php,symfony,Php,Symfony,我试图在Symfony 3.0.9中定义一些ChoiceType,表单中使用ajax填充,具体取决于动态创建的选项数量,但验证表单表明所选选项无效 我对ChoiceType的定义如下: ->add('position', ChoiceType::class, [ 'placeholder' => 'Select position', 'choices' => [], 'attr' => [ 'class' => 'form-c

我试图在Symfony 3.0.9中定义一些ChoiceType,表单中使用ajax填充,具体取决于动态创建的选项数量,但验证表单表明所选选项无效

我对ChoiceType的定义如下:

->add('position', ChoiceType::class, [
    'placeholder' => 'Select position',
    'choices'  => [],
    'attr' => [
       'class' => 'form-control choice-position'
    ],
 ])
我得到的错误是:

Symfony\Component\Validator\ConstraintViolation
Object(Symfony\Component\Form\Form).children[lessonGroups].children[0].children[position] = 1

Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
Unable to reverse value for property path "position": The choice "1" does not exist or is not unique

Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
The choice "1" does not exist or is not unique
我不知道是否需要进一步的信息


谢谢大家!

由于您的定义不包含任何选项(
“选项”=>[],
),因此Symfony检测到用户尝试提交不在初始授权结果中的结果

您可以设置包含所有可用值的初始选项数组,也可以使用以下命令禁用该验证:

$builder->get('yourField')->resetViewTransformers();

你的symfony版本是什么?你需要看看表单事件-“哦!我不知道。我想如果我在数组之后填充,定义就不会在意了。。。不管怎样,我只是添加了代码行,工作得非常完美。非常感谢。