Forms 表单事件侦听器中的Symfony2验证值?

Forms 表单事件侦听器中的Symfony2验证值?,forms,validation,symfony,Forms,Validation,Symfony,我有以下Symfony2格式的代码片段: $builder->add('AccountID'); $builder->get('AccountID')->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $Event) { //Do something but only if AccountID passed validation } ); 现在无论是否通过验

我有以下Symfony2格式的代码片段:

$builder->add('AccountID');

$builder->get('AccountID')->addEventListener(
    FormEvents::POST_SUBMIT,
    function (FormEvent $Event) {
        //Do something but only if AccountID passed validation
    }
);
现在无论是否通过验证,都会触发
POST\u SUBMIT

如何判断该字段是否在事件侦听器中正确验证

我不希望使用
if
来检查我在字段
validation.yml
中指定的相同验证


这可能吗?

使用
$event->getForm()->isValid()如何

如果您的事件侦听器在验证步骤发生后被调用,那么这应该是可靠的

请注意,验证步骤可以在表单订阅服务器本身中找到,并且正在侦听您试图附加到的相同事件


如需参考,请在Symfony 4中选中
Symfony\Component\Form\Extension\Validator\EventListener\ValidationListener

,我这样做是为了验证基于另一个表单元素的表单输入:

    ->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
                   $cardData=$event->getData();
                   $form=$event->getForm();

                    if(Your Valdiation Condition){

                        }
                        else{
                      $form->addError(new FormError("form error message"));
                        }
  });

看起来就是这样。等我有空的时候再去看看!谢谢你哇,看来我提前给了悬赏。我认为这是有效的,直到我在表单中输入了一个无效值。Symfony2错误显示,指示一个无效值,但是
$event->getForm()->isValid()
在不应该返回的时候返回
true
。得到它,看起来
$event->getForm()->isValid()
只对整个表单的侦听器有效,而不是对单个方法有效。因此,例如
isValid()
$builder->addEventListener()
内部工作,但不是
$builder->get('AccountID')->addEventListener()
,尽管这是正确的答案,但您无法在整个表单上添加带有侦听器的字段。您将获得
异常,无法将子项添加到提交的表单中。所以做一个子表单监听器是最好的选择,现在我只需要弄清楚怎么做。你弄明白了吗?StackOverflow已经一个多星期没有打开了。