Symfony2的。如何让表单忽略额外的字段?

时间:2015-12-15 20:20:51

标签: ajax forms symfony cross-domain

我需要将一些数据发布到我的Symfony表单中,然后使用submit()方法。

但是当请求包含一些额外数据时,我收到错误:

  

"此表单不应包含额外字段"

是否可以使用表单配置让表单错过额外的数据?

也许存在另一种方法吗?

注意:我需要submit()方法,而不是handleRequest(),因为我通过跨域ajax请求发布我的数据,因此无法以这种方式提交表单。原因:isValid()返回false,因为isSubmitted()返回false。

P.S。当然,我可以在将其传递给表单之前创建将处理我的请求的服务,但可能存在更优雅的方式。

1 个答案:

答案 0 :(得分:9)

在表单类型中:

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\YourEntity',
            'translation_domain' => strtolower('entity_translation_domain'),
            'allow_extra_fields' => true,
        ));
    }

allow_extra_fields将使您的表单能够接收额外数据