Symfony2:如何根据数据为绑定PRE_SET_DATA中的字段添加表单约束

sch*_*ldi 4 forms validation symfony

我在Symfony 2中有一个表单,基本上有两个字段:

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder->add('contactType', 'select', array(  'choices' => $contactTypes ))
            ->add('value', 'text');
}
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个侦听FormEvents :: PRE_SET_DATA事件的EventSubscriber.我真正想要做的是根据contactType的值改变验证方式(数字值从1到4,代表电子邮件,移动,固定电话和传真).

我按照本教程http://symfony.com/doc/current/cookbook/form/dynamic_form_generation.html

但我无法弄清楚,如何在值字段中添加约束.

谁能帮我?非常感谢提前.

gat*_*isl 8

您可以将组设置为字段的验证约束,并根据提交的数据确定验证组,而不是在事件订阅者中动态添加验证约束(不确定是否可能).