Validation 验证中的Symfony范围.yml

Validation 验证中的Symfony范围.yml,validation,symfony,Validation,Symfony,我想知道这种特殊的验证行为,虽然这更多是出于好奇而不是为了解决现实生活中的问题,但我很想知道答案 实体房地产价格定义为: /** * @ORM\Column(name="price", type="float", nullable=false) */ 在Symfony中,范围最小和最大选项是“整数”类型。但实际上使用浮点数时,它确实可以按预期工作: #validation.yml Project\MyBundle\Entity\Product: properties:

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

实体房地产价格定义为:

/**
 * @ORM\Column(name="price", type="float", nullable=false)
 */   
在Symfony中,范围最小和最大选项是“整数”类型。但实际上使用浮点数时,它确实可以按预期工作:

#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€
如图所示,max validation可以毫无问题地使任何高于12,90的值失败。 最小验证不:

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

是否有任何理由将最小值和最大值记录为type:integer,但用于验证浮点值?
有人对此问题给出了有效的答案吗?

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

0.009,相当于0.01


胡乱猜测:你是不是在昏迷后排名第二,所以0.009变成了0.01?另一个需要研究的是浮点精度。formType是货币类型,没有定义刻度。我还尝试将DB字段更新为float6,3,这允许我直接在mysql中保存0.009。唯一的问题是我在列注释中的浮点定义是否有错误,是否有精度、比例选项。第4.3章:。