私はNumberTypeを使用するSymfony 3.2フォームを持っています。私はこのフィールドを小数点以下の価格(車、不動産、つまりセントを使用しない価格)に使用します。NumberTypeの変更を誤って検出する
また、エンティティへの変更を検出して監査ログを書き込むpreUpdateリスナーもあります。フォームを提出するたびに、フォームフィールドに28000などの価格が28000.0として表示されますので、私のチェンジセットには違いが表示されます。
私はこれを取り除く方法を理解できません。フォームの型とEntity自体の両方に "scale"パラメータを0に設定していますが、これは小数点以下を削除すると考えられますが、そうではありません。
私はもともとTextTypeを使用していましたが、これはテキストフィールドとして扱うことで独自の問題を抱えていましたので、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;
にformType:
->add('salePrice', NumberType::class, [
'label' => 'Sale: $',
'required' => false,
'scale' => 0,
'attr' => ['class' => 'size-sm input-sm'],
])
このリンクはあなたを助けます:https://github.com/doctrine/doctrine2/issues/5594 –