2

我动态生成一个表单并添加约束(即Choice)。

$builder->add('test', 'choice', [
    'choices' => [1, 'one', 2 => 'two'],
    'required' => true,
    'expanded' => true,
    'error_bubbling' => true,
    'cascade_validation' => true,
    'label' => 'this_is_a_test',
    'multiple' => false,
    'constraints' => [
        new NotBlank([
            'groups' => ['Default']
        ]),
        new Choice([
            'min' => 1,
            'choices' => [1, 2],
            'groups' => ['Default']
        ])
    ]
]);

提交带有空数据的表单时,错误会显示在表单上,​​而不是我添加约束的表单元素(也在分析器中检查)。

这些约束没有选项atPath,我将它们直接添加到字段中,所以我不明白它们为什么出现在表单中。

4

1 回答 1

3

这就是error_bubbling选项的作用(您true在表单类型中设置):

如果true,此字段的任何错误都将传递给父字段或表单。例如,如果true在普通字段上设置为,则该字段的任何错误都将附加到主表单,而不是特定字段。

于 2015-12-31T10:15:48.107 回答