我想知道这个特定的验证行为,虽然比解决实际生活问题更出于好奇,但我很想知道答案。验证中的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€
最大审定工作未做高于12,90在图片中看到失败的任何值的任何问题。 分钟验证没有:
输入0,009将通过验证虽然是小于0.01。
是否有任何理由,最小值和最大值记录为类型:整数,但工作验证浮点值? 有没有人有这个问题的有效答案?
胡乱猜测:你在昏迷后舍入到第二位,这样' 0.009'变成了'0.01'?另一个要考虑的事情是浮点精度。 – k0pernikus