【发布时间】:2016-02-18 22:04:54
【问题描述】:
默认情况下消息:此值无效。 不够。我正在将@Assert 添加到我的实体中的每个属性以进行更具体的验证。
我在表格顶部全局显示错误 - 而不是单独显示 - 以防它在本次讨论的上下文中很重要。
/**
* @ORM\Column(type="decimal", nullable=false, precision=10, scale=2)
* @Assert\Type(message="list price must be a numeric value", type="decimal")
* @Assert\NotBlank(message="list price cannot be empty")
* @Assert\GreaterThanOrEqual(message="list price must be no less than zero", value = 0)
*/
private $listPrice;
这是我目前所拥有的,但当我输入值“D44.33”时,表单仍然无效
如何覆盖默认的“类型”验证器?请注意像 GreaterThanOrEqual 这样的其他验证器按预期工作 - 但对于我来说,我无法让“类型”工作???
【问题讨论】:
-
D44.33 不是十进制值。如果您想要小数点以字母
D开头的格式,您应该编写自己的自定义验证约束。 -
这就是重点...我希望验证失败并说明失败的原因
-
但是我得到了一般性消息,这意味着什么......甚至不包括失败的字段名称......在全局显示错误的情况下这是无用的:)
-
然后您在表单的其他地方收到错误,因为错误类型的默认值是
This value should be of type {{ type }}. -
我认为可能是这种情况,但是当我调查错误时,我确定(不是在工作中确认)它说有问题的字段..有任何调试建议吗?
标签: forms validation symfony