【发布时间】:2017-01-29 14:50:59
【问题描述】:
我在实体中有这段代码:
/**
* @Assert\Type(
* type="real",
* message="Price for vehicle service must be real number."
* )
*
* @ORM\Column(name="min_price", type="float")
*/
protected $minPrice;
但是如果在这个表单域中输入非整数值,Symfony 返回默认的区域设置错误消息(在我的例子中是Значение недопустимо),而不是“车辆服务价格必须是实数。”。这很不舒服,因为错误地没有指定字段名称,如果有复杂的表单,需要时间找到该字段。
也许作为解决方案可以是回调验证,但在我的主观意见中它不会出现,因为用户只能看到语言环境默认消息。当我试图避免添加 @Assert\Regex(pattern="/+d/", message="custom message") 时,我还是看到了语言环境默认消息。
Symfony Profiler 显示以下错误:
Symfony\Component\Validator\ConstraintViolation
Object(Symfony\Component\Form\Form).children[vehiclePriceOutOfTown].children[minPrice] = g
Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
Unable to reverse value for property path "minPrice": Number parsing failed: U_PARSE_ERROR
Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
Number parsing failed: U_PARSE_ERROR
【问题讨论】: