使用 Symfony 5 中的 FOSRestBundle 转换单个属性以进行响应

问题描述

我在我的 symfony 应用程序中处理带有很多小数位的数字。例如,在我的学说实体中,我有这个属性:

/**
 * @ORM\Column(type="float")
 */
private float $value;

在我的 mysql 数据库中,我有这个值,例如:0.00000000020828579949508

当我在 PHP 中转储它时,我得到了这个:float(9.3722658865184E-7)。我还使用 FOSRestBundle 制作了一个 API。在那个 API 中,我想返回不是指数形式的值,至少有 12 个小数位。我认为在这种情况下我必须提供字符串形式的值,对吗?我发现我可以用这样的东西把它转换成字符串:sprintf("%.12f",$myEntity->getValue())。但我现在有两个问题:

  1. 如何使用 FOSRestBundle 转换单个属性以进行响应?所以我将“value”属性作为字符串返回,即使它通常是一个浮点数。
  2. 在 symfony、学说和 FOSRestBundle 中是否有通用的最佳实践或任何提示来处理这些数字?

现在这是我的控制器操作:

public function getData(): Response
{
    $repository = $this->getDoctrine()->getRepository(MyEntity::class);
    $data = $repository->findAll();

    return $this->handleView($this->view($data));
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)