当前位置: 首页 > 知识库问答 >
问题:

Symfony验证缺少所需表单字段的错误消息

端木承业
2023-03-14

我有一个工作表单,它有一个必填字段,不能为空:

/**
 * @Assert\NotBlank
 */
private $field1 = '';

如果我在请求中指定此字段,但将该字段保留为空,则会得到以下响应:

{
    "code":400,
    "message":"Validation Failed",
    "errors":{
        "children":{
            "field1":{
                "errors":["Field should not be blank"]
            }
        }
    }
}

如果我在请求中省略此字段,我将得到以下响应:

{
    "code":400,
    "message":"Validation Failed",
    "errors":{
        "errors":["Field should not be blank"]
    }
}

有没有一些内置的Symfony逻辑,我可以用它来使第二个例子与第一个例子相匹配?

[编辑]使用的是Symfony 2.5-现在更新为Symfony 2.8。同样的问题。

共有2个答案

栾瑞
2023-03-14

您正在处理请求后验证实体。如果将“field1”为空的实体传递给验证器,则此对象始终无效。这看起来像是全局级别的验证错误。

申屠弘图
2023-03-14

当表单对象本身中没有显示字段时,可能会发生此行为。在这种情况下,违规映射器不能将验证错误映射到其中一个字段。请检查字段是否显示在表单对象中。

 类似资料:
  • 我得到了以下错误无法构建Hibernate SessionFactory;嵌套异常是org.hibernate.tool.schema.spi.模式管理异常:模式验证:缺少表[my.table] 这有版本问题吗?大多数示例都不使用模式,即使是官方的?https://github.com/spring-projects/spring-boot/tree/main/spring-boot-tests/

  • 我有一个java Spring Boot项目,我想验证匹配的密码,并在json响应中显示错误。 验证器: 调用类级别的验证器,但响应负载中不包含错误消息。当我使用属性上使用的另一个自定义验证器(UniqueEmailUserSignup)时,错误消息如下所示。但是缺少密码确认消息。 实体通过控制器功能中的有效注释进行验证。 如何确保自定义ConstraintValidator的错误消息也包含在错误

  • 我使用Symfony 5.3。我有一个表单,有3个字段没有映射到任何实体: "原因"-文本, use_predefined复选框 "predefined_reason"-下拉列表。 我构建的表单如下(一个片段): “原因”字段应根据需要显示在UI中,但其他两个字段不应显示。但是,在验证过程中,如果选中了复选框“预定义的原因”,则第一个字段不应为必填字段,而“预定义的原因”应为必填字段。

  • 我有一个表单,有许多输入字段。我已经对html5进行了验证 当我提交表单时,没有填写这个文本框,它显示默认消息,如 有人能帮我编辑这条消息吗? 我有一个javascript代码来编辑它,但它不工作 我有以下HTML表单 验证消息我想要喜欢。 必填字段:请输入电子邮件地址 错误的电子邮件:测试@. com不是一个有效的电子邮件地址。 我试过这个。 此功能无法正常工作,您是否有其他方法来执行此操作?我

  • 我正在使用jQuery FormBuilder插件。链接:http://formbuilder.readthedocs.io/en/latest/.现在,当用户提交表单时,我想确保所有必需的字段(带*)都已填写完毕,否则表单将无法提交(我会收到一条错误消息'一个无效的表单控件,名称='xxx'是不可聚焦的。')。表单中有许多类型的输入,包括文本、文本区域、下拉选择、单选和复选框等。我如何验证所有这

  • 我正在使用谷歌应用程序引擎和谷歌数据存储。我正在使用谷歌图书馆 我的示例代码是: 我使用Spring靴和码头作为容器。 在本地,它工作正常,数据在谷歌数据存储中更新。 问题是当我部署应用程序到google-app-Engine,我得到下面的异常,当我得到datastore.put方法。 注意:在本地环境和google-app-Engine中,我定义了环境变量GOOGLE_APPLICATION_C