symfony2エンティティ内で小数の精度とスケールを設定するにはどうすればよいですか?次のように、エンティティの10進データ型を使用して経度フィールドに緯度を定義しました。
/**
* @ORM\Column(type="decimal", precision="10", scale="6", nullable=true)
*/
protected $latitude;
新しいオブジェクトを永続化すると、小数が正しく保存されます(phpMyAdminで52.406374を確認できます)。ただし、編集フォームを表示する場合、数値は52,406に丸められ、更新後は52.406000としてmysqlに保存されます。おそらく私のDoctrine構成に何か問題がありますが、何がわかりません。
緯度と経度が丸められるのはなぜですか?
解決策を見つけました:
SymfonyのFormコンポーネントは、10進数のフォームフィールドをtype="text"としてレンダリングします。使用する場合:
->add('latitude', 'number', array(
'precision' => 6,
))
正しくレンダリングされます。コメントからのスレッドは私の問題を説明していません。「floatに変換する」精度のバグはすでに修正されていると思います。小枝テンプレートで緯度を表示していたとき、適切な(丸められていない)値が表示されていました。