我有一个工作表单,它有一个必需的字段,需要不是空白:
/**
* @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,同样的问题。
答案 0 :(得分:3)
当字段未在表单对象本身中显示时,可能会发生此行为。在这种情况下,违规映射器不能将验证错误映射到其中一个字段。请检查该字段是否在表单对象中显示。
答案 1 :(得分:0)
您在处理请求后验证实体。如果您通过空' field1'传递实体对于验证器,此对象始终无效。它看起来像是来自全球层面的验证错误。