如何配置 Symfony 序列化程序组件以规范化对象(实体)的浮点属性?
详细说明:学说实体的 taxRate
属性映射到 PHP 浮点值。我想从具有 JSON 表示形式的 Controller 做出响应,例如:
{taxRate:0.19}
但是我得到的是
{taxRate:"0.19"}
实体的属性和注解的定义是:
class ExampleEntity {
/**
* @ORM\Column(type="decimal", precision=3, scale=2, nullable=true)
* @Groups({"api"})
*/
protected $taxRate;
}
Controller 看起来像这样:
$serializer = $this->get('serializer');
return new JsonResponse(
$serializer->normalize(
$exampleEntity,
'json',
[
'groups' => 'api',
]
)
);
我不喜欢在 JavaScript 端将字符串转换为 Float 的解决方案。我的应用想要断言该属性为 NULL 或 Float 值。
如何做到这一点?
最佳答案
感谢评论,我认为问题不是很清楚/可以删除。
序列化过程没问题,是我没弄对的Doctrine的映射。
完全没问题,DECIMAL Doctrine/MySQL 类型映射到 PHP 字符串。 DECIMAL 旨在保证数值的精度。 PHP 的 float 类型不能保证相同的精度。
关于php - Symfony 序列化程序返回字符串而不是 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812594/