我有一个这样的领域December
/** * * @ORM\Column(name="foo", type="decimal", precision=0, scale=2, nullable=false, unique=false) */ private $foo;
当我使用getFoo()或QueryBuilder时,我的值是“159.79”而不是159.79。我如何获得正确的类型?
getFoo()
QueryBuilder
7dl7o3gd1#
即使您在Doctrine注解中将其声明为小数,当它被检索时,PHP也会将其视为字符串。参考这里。从数据库中检索的值总是转换为PHP的字符串类型,如果没有数据,则转换为null。你可以改变getter,将其转换为一个float,然后返回。例如
public function getFoo() { return (float) $this->foo; }
或
public function getFoo() { return floatval($this->foo); }
查看Type Juggling了解更多信息。关于floatVal()here的更多信息
floatVal()
a0x5cqrl2#
输入你的属性以浮动,当你获取实体时,它应该自动转换它:
/** * * @ORM\Column(name="foo", type="decimal", precision=0, scale=2, nullable=false, unique=false) */ private float $foo;
2条答案
按热度按时间7dl7o3gd1#
即使您在Doctrine注解中将其声明为小数,当它被检索时,PHP也会将其视为字符串。
参考这里。
从数据库中检索的值总是转换为PHP的字符串类型,如果没有数据,则转换为null。
你可以改变getter,将其转换为一个float,然后返回。
例如
或
查看Type Juggling了解更多信息。
关于
floatVal()
here的更多信息a0x5cqrl2#
输入你的属性以浮动,当你获取实体时,它应该自动转换它: