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);
        }
    );