我想知道這個特定的驗證行爲,雖然比解決實際生活問題更出於好奇,但我很想知道答案。驗證中的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