缺少必填表单字段的Symfony验证错误消息

时间:2016-03-21 17:52:54

标签: php forms validation symfony

我有一个工作表单,它有一个必需的字段,需要不是空白:

/**
 * @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逻辑来使第二个示例与第一个示例匹配吗?

[edit]使用Symfony 2.5 - 现在更新到Symfony 2.8.3,同样的问题。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

您在处理请求后验证实体。如果您通过空' field1'传递实体对于验证器,此对象始终无效。它看起来像是来自全球层面的验证错误。