【问题标题】:Symfony2. How to allow form to ignore extra fields? [duplicate]Symfony2。如何让表单忽略额外的字段? [复制]
【发布时间】:2015-12-15 20:20:50
【问题描述】:

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

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

“此表单不应包含额外字段”

是否可以通过表单配置让表单漏掉多余的数据?

也许还有另一种方法可以做到这一点?

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

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

【问题讨论】:

  • 我不认为这是重复的。链接的问题不考虑较新的 Symfony 版本。

标签: ajax forms symfony cross-domain


【解决方案1】:

在您的表单类型中:

    /**
     * @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 将使您的表单能够接收额外的数据

【讨论】:

  • 感谢您的回答,它有效!看来,这个选项忽略了额外的数据,所以这就是我需要的。
猜你喜欢
  • 1970-01-01
  • 2016-11-10
  • 2012-08-11
  • 2014-09-03
  • 2015-06-22
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 2022-10-18
相关资源
最近更新 更多