我有一个使用NumberType的Symfony 3.2表单。我使用这个字段的价格没有小数(汽车,房地产,即我们不用美分的价格)。
我还有一个preUpdate侦听器,它检测实体的更改以编写审核日志。每当提交表单时,表单字段中的28000等价格将显示为28000.0,因此会显示差异,出现在我的变更集中。
我无法弄清楚如何摆脱这个。我有"规模"表单类型和实体本身的参数设置为0,我认为这将消除任何小数,但它不会。
我最初只是使用TextType但是它有自己的问题,将其视为文本字段,因此它将28000与#34; 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;
FormType:
->add('salePrice', NumberType::class, [
'label' => 'Sale: $',
'required' => false,
'scale' => 0,
'attr' => ['class' => 'size-sm input-sm'],
])
答案 0 :(得分:0)
您是否尝试过IntegerType Field:
->add('salePrice', IntegerType::class, [
'label' => 'Sale: $',
'required' => false,
'attr' => ['class' => 'size-sm input-sm']
])
你可以尝试一下,看看它是否效果更好。 NumberType适用于非整数。