当前位置: 首页 > 面试题库 >

Symfony 2。如何允许表单忽略多余的字段?

皇甫俊雅
2023-03-14
问题内容

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

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

“此表单不应包含其他字段”

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

也许存在另一种方法?

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

PS 当然,我可以创建将在将请求传递给表单之前处理我的请求的服务,但是也许存在更优雅的方式。


问题答案:

在您的表单类型中:

    /**
     * @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将使您的形式接收额外的数据



 类似资料:
  • 问题内容: 鉴于以下课程 当我们验证它(例如,使用@Valid)并且如果Website.url不遵守我的自定义@ValidUrl约束时,我们将遇到约束冲突(例如,“ URL不可访问”)。 我想知道如果用户愿意,是否可以忽略该验证。 脚步: 第一次验证表格 引发约束冲突并将其显示给用户 用户选择“我知道,仍然添加”,然后重新提交 第二次验证表单,验证@ValidUrl以外的所有内容 问题答案: 您可

  • 问题内容: 我正在研究与H2数据库接口的Java插件。我真正想要的是“插入忽略”语句;但是,我知道H2不支持此功能。我也知道Merge,但这并不是我想要的,如果记录存在,我不想更改它。 我正在考虑的是只是运行插入并让重复键异常发生。但是,我不希望这填满我的日志文件。DB调用发生在我无法更改的导入类中。所以我的问题是: 这是合理的做法吗?我不是让错误发生的人,但这似乎是这种情况下的最佳方法(它应该不

  • 问题内容: 我收到一个XML响应,并且它一直在频繁更改(节点不断增加或减少)。在响应xml中的每次更新之后,由于映射的Java类没有所有文件,所以我的代码中断了。 如果响应XML中发生任何更改,是否有任何方法可以避免我的代码中断。 任何帮助将不胜感激。 谢谢。 问题答案: 要处理未知字段,可以添加带注释的属性 输入中与类的显式属性不对应的任何元素都将被扫入此列表。如果该元素是已知的,则将得到未编组

  • 这里有一个简单的endpoint,存在于/api/v1/jwt中 返回一个有效的JWT令牌。 但我的安全配置不再起作用,现在所有endpoint似乎都受到保护, Edit:antPathRequestMatcher没有为configure启动,但我甚至添加了websecurity configure的路径,我得到了以下日志记录

  • 我正在使用管理版本,ala PEP 440。 我已将几个版本上载到私有存储库: 我的问题是现在当我使用 我得到的版本是当我期望得到。 有没有办法让pip忽略“本地版本”,只安装准确的版本,而不必上传到不同的索引(即staging和stable)? 编辑: 我已尝试使用和标志,但问题仍然存在;皮普更喜欢0.0。2版本到0.0版本。2版本。 附加编辑: 我使用的是和python2.7

  • 这两种方法有什么区别? 在Spring安全配置类中,当我使用HttpSecurity时,它仍然给我403个禁止,但当我使用WebSecurity时,它通过得很好?为什么?我觉得我几乎无法控制什么是允许的,什么需要通过过滤器进行授权。