Forms 变更集错误地检测NumberType上的变更

Forms 变更集错误地检测NumberType上的变更,forms,symfony,Forms,Symfony,我有一个使用NumberType的Symfony 3.2表单。我使用此字段表示没有小数的价格(汽车、房地产,即我们不使用美分表示的价格) 我还有一个预更新侦听器,它检测实体的更改以编写审核日志。每当提交表单时,表单字段中的价格(如28000)将显示为28000.0,因此将显示差异,并显示在我的变更集中 我想不出怎么摆脱这个。我将表单类型和实体本身的“scale”参数都设置为0,我认为这可以消除任何小数点,但事实并非如此 我最初只是使用一个文本类型,但它有它自己的问题,将它作为一个文本字段处理,这

我有一个使用NumberType的Symfony 3.2表单。我使用此字段表示没有小数的价格(汽车、房地产,即我们不使用美分表示的价格)

我还有一个预更新侦听器,它检测实体的更改以编写审核日志。每当提交表单时,表单字段中的价格(如28000)将显示为28000.0,因此将显示差异,并显示在我的变更集中

我想不出怎么摆脱这个。我将表单类型和实体本身的“scale”参数都设置为0,我认为这可以消除任何小数点,但事实并非如此

我最初只是使用一个文本类型,但它有它自己的问题,将它作为一个文本字段处理,这样它将比较28000和“28000”,并将其视为一个变化,而实际上它并没有

有什么想法吗

侦听器中变更集的Vardump:

"salePrice" => array:2 [▼
    0 => 32888
    1 => 32888.0
]
实体:

/**
 * @var integer
 * @Groups({"feed"})
 * @ORM\Column(name="sale_price", type="integer", nullable=true)
 */
private $salePrice;
表单类型:

->add('salePrice', NumberType::class, [
    'label' => 'Sale: $',
    'required' => false,
    'scale' => 0,
    'attr' => ['class' => 'size-sm input-sm'],
])
您是否尝试过以下方法:

你能试试看它是否更好用吗。NumberType用于非整数。

此链接可帮助您:
->add('salePrice', IntegerType::class, [
    'label' => 'Sale: $',
    'required' => false,
    'attr' => ['class' => 'size-sm input-sm']
])