验证范围中的Symfony范围

时间:2015-10-07 09:34:56

标签: validation symfony

我想知道这种特殊的验证行为,虽然更多是出于好奇而不是解决现实生活中的问题,但我有兴趣知道答案。

实体财产价格定义为:

/**
 * @ORM\Column(name="price", type="float", nullable=false)
 */   

在Symfony manual targeting 2.7中,范围最小和最大选项是'整数'类型。但实际上使用浮点数,它确实按预期工作:

#validation.yml
Project\MyBundle\Entity\Product:
    properties:
        price:
           - Range:
                min: 0.01
                max: 12.90
                minMessage: Price can't be lower than 0,01€
                maxMessage: Price can't be lower than 12,90€

enter image description here

最大验证工作没有任何问题,使任何高于12,90的值失败,如图所示。 最小验证不会:

输入0,009将通过验证,尽管小于0,01。

是否有任何理由将最小值和最大值记录为类型:整数但是要用于验证浮点值吗? 有没有人对这个有效的答案?

1 个答案:

答案 0 :(得分:0)

价格类型具有精确点2,因此您的数字是四舍五入的

  

0.009,相当于0.01