如何在错误后将表单元素添加到Symfony Form


How to add a form element to Symfony Form after error

我有一个symfony2形式。

我想做的是,如果有错误,请在表单中添加验证码字段,因此第二次也需要填写。验证码不是这里的重要问题,但是如何在提交后添加该字段,如果提交后无法更改发件人,我如何知道它已提交?

所以主要问题是,如果出现错误,如何添加文本输入字段?

试试这个:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('foo', 'number')
        ->add('bar', 'number')
        ->add('submit', 'submit')
    ;
    $builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'onPreSubmit']);
}
public function onPreSubmit(FormEvent $event)
{
    if (!$event->getForm()->isValid()) {
        $event->getForm()->add('test', 'text', [
            'mapped' => false
        ]);
    }
}