繁体   English   中英

symfony断言忽略自定义消息

[英]symfony assert ignores custom message

我在实体中有这个代码:

/**
     * @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

您看到的异常是在用户输入转换期间触发的。 这是在应用实际验证逻辑之前发生的(这发生在POST_SUBMIT事件的一部分)。 如果要在抛出TransformationFailedException时自定义显示的错误消息,则可以对特定表单类型使用invalid_message选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM