Как настроить компонент Symfony Serializer для нормализации свойства float объекта (объекта)?
Подробно: taxRate
свойство сущности доктрины сопоставляется с плавающим значением PHP. И я хотел бы ответить от контроллера с представлением JSON, как:
{taxRate:0.19}
Но то, что я получаю,
{taxRate:"0.19"}
Определение свойства объекта и аннотации:
class ExampleEntity {
/**
* @ORM\Column(type="decimal", precision=3, scale=2, nullable=true)
* @Groups({"api"})
*/
protected $taxRate;
}
Контроллер выглядит так:
$serializer = $this->get('serializer');
return new JsonResponse(
$serializer->normalize(
$exampleEntity,
'json',
[
'groups' => 'api',
]
)
);
Мне не нравится решение преобразования строки в число с плавающей точкой на стороне JavaScript. Мое приложение хотело бы утверждать, что свойство имеет значение NULL или значение Float.
Как это может быть сделано?
Благодаря комментариям, я думаю, что вопрос не очень ясен / может быть удален.
Процесс сериализации в порядке, это отображение из Doctrine, которое я не понял правильно.
Это нормально, типы DECIMAL Doctrine / MySQL сопоставлены со строками PHP.
DECIMAL разработан, чтобы гарантировать точность для числового значения. Тип float в PHP не может гарантировать одинаковую точность.
Других решений пока нет …