Сериализатор Symfony возвращает строку вместо float

Как настроить компонент 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.

Как это может быть сделано?

1

Решение

Благодаря комментариям, я думаю, что вопрос не очень ясен / может быть удален.

Процесс сериализации в порядке, это отображение из Doctrine, которое я не понял правильно.

Это нормально, типы DECIMAL Doctrine / MySQL сопоставлены со строками PHP.
DECIMAL разработан, чтобы гарантировать точность для числового значения. Тип float в PHP не может гарантировать одинаковую точность.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]