當我嘗試保存類型「百分比」的Symfony的2.8表單域與分數值,驗證返回Symfony的2.8:百分比表單字段驗證不正確的分數
此值不能爲空。
我已經設置了場在我的實體按指示:
/**
* @var decimal
*
* @ORM\Column(
name="total_percent",
type="decimal",
precision=14,
scale=8,
nullable=false
)
* @Assert\NotNull()
*/
private $percent;
和創建我的領域這樣:
->add('percent',
PercentType::class,
array(
'scale' => 8,
'attr' => array('class' => 'percent_field'))
)
我有雙重檢查數據庫和我可以用分數創建條目,所以這個問題似乎與Symfony的形式有關。但是,我在代碼中找不到問題。 有沒有人成功實現了這一點。實質上,我希望能夠節省百分之一點五,如1.5%。 任何建設性的想法(關於手頭的問題)表示讚賞。
@roland我不確定驗證錯誤是否由於錯誤的設置而導致的,但是您的映射肯定是錯誤的。如果錯誤不消失,請查看Symfony profiler - >表單以查看傳遞給表單的數據。讓我知道:-) –
Symfony將「百分比」字段值轉換爲其實際值,例如, 1.5%在數據庫中存儲爲0.015(這可以工作,我可以手動將該值添加到數據庫)。所以在你的情況下,我將無法存儲1.5(precision = 3,scale = 1)。因爲它將被存儲爲0.015。當scale = 1時,這會使它0.0,這將觸發非空錯誤? – roland
@roland我用完整的工作配置更新了我的答案。PS:請記住使用**逗號**「」插入值,而不是點(Symfony會在將數據存儲到數據庫之前轉換「視圖」值)。 –