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

时间:2015-01-07 13:43:05

标签: php forms symfony

我有一个symfony2表单。

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

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

1 个答案:

答案 0 :(得分:0)

试试这个:

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
        ]);
    }

}