Symfony - Form - IntegerType 接受 1.00 (x.00) 值作为有效值
Symfony - Form - IntegerType accepting 1.00 (x.00) Values as valid
我有以下表单生成器属性,
$builder->add('Adjustment', IntegerType::class, array(
'label' => 'Amount',
'data' => (int)$this->statusAdjustment["adjustment"],
'required' => true,
'rsounding_mode' => \NumberFormatter::ROUND_HALFDOWN,
));
当我输入 1.00 作为值时,它接受值并在前面提交表单,因为在 HTML 中它设置为 input type="number",
<input type="number" id="Adjustment" name="adjustment[Adjustment]" required="required" value="">
但是,我想将其设置为不接受 1.00 或将 1.00 舍入为 1,否则当提交 1.00 之类的值时表单会变得无效,但 1 是好的,
if ($form->isSubmitted() && $form->isValid()) {
}
知道如何解决这个问题吗?因为表单仅在您提交“1”或整数值时才有效,但在前端它接受“1.00”作为整数类型。
我通过在预提交事件中向表单添加事件侦听器解决了这个问题。
->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$data = $event->getData();
if (!$data) {
return;
}
$data['Adjustment'] = (int)$data['Adjustment'];
$event->setData($data);
}
);
我有以下表单生成器属性,
$builder->add('Adjustment', IntegerType::class, array(
'label' => 'Amount',
'data' => (int)$this->statusAdjustment["adjustment"],
'required' => true,
'rsounding_mode' => \NumberFormatter::ROUND_HALFDOWN,
));
当我输入 1.00 作为值时,它接受值并在前面提交表单,因为在 HTML 中它设置为 input type="number",
<input type="number" id="Adjustment" name="adjustment[Adjustment]" required="required" value="">
但是,我想将其设置为不接受 1.00 或将 1.00 舍入为 1,否则当提交 1.00 之类的值时表单会变得无效,但 1 是好的,
if ($form->isSubmitted() && $form->isValid()) {
}
知道如何解决这个问题吗?因为表单仅在您提交“1”或整数值时才有效,但在前端它接受“1.00”作为整数类型。
我通过在预提交事件中向表单添加事件侦听器解决了这个问题。
->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$data = $event->getData();
if (!$data) {
return;
}
$data['Adjustment'] = (int)$data['Adjustment'];
$event->setData($data);
}
);