Doctrine中的十进制返回字符串

时间:2016-11-10 15:22:51

标签: symfony doctrine

我有像这样的字段Decimal

 /**
 *
 * @ORM\Column(name="foo", type="decimal", precision=0, scale=2, nullable=false, unique=false)
 */
private $foo;

当我使用getFoo()QueryBuilder时,我的值是“159.79”而不是159.79。 我怎样才能得到正确的类型?

1 个答案:

答案 0 :(得分:4)

即使您在Doctrine注释中将其声明为十进制,但在重新启动时,PHP会将其视为字符串。
 Reference here

  

从数据库中检索的值始终转换为PHP   字符串类型,如果没有数据,则为null。

您可以将吸气剂更改为浮动然后返回 E.g。

public function getFoo()
{
    return (float) $this->foo;
}

public function getFoo()
{
    return floatval($this->foo);
}

请查看Type Juggling了解更多信息 有关floatVal() here

的更多信息