Php 为什么实体getter返回null而不是0?

Php 为什么实体getter返回null而不是0?,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我在数据库中有一个字段是tinyint 以下是负责此getter的实体的一部分: /** * @var integer * * @ORM\Column(name="showAmounts", type="boolean", nullable=false) */ private $showamounts = 1; /** * Get showamounts * * @return integer */ public function getShowamounts() {

我在数据库中有一个字段是tinyint

以下是负责此getter的实体的一部分:

/**
 * @var integer
 *
 * @ORM\Column(name="showAmounts", type="boolean", nullable=false)
 */
private $showamounts = 1;

/**
 * Get showamounts
 *
 * @return integer
 */
public function getShowamounts()
{
    return $this->showamounts;
}
如果showmounts=0,那么

echo $o->getShowamounts(); // returns "" instead of "0"

当我将getter转换为int时,它工作了,但是我100%确信当我编写代码时(几个月前),一切都正常。所以我的问题是,发生了什么?也许正因为如此,实体中的var被定义为布尔值?我只想存储0或1。

尝试将您的值转储为:

var_dump($o->getShowamounts());

数据库列的类型吗?您应该考虑更改<代码>私有$ SeaSuffs= 1;<代码>至
私人$showamounts=true。Doctrine将mysql的true、false转换为1,0,但在您的应用程序中,您应该始终对类型
boolean
使用true和false。从
Symfony 2.6
开始,您应该/可以使用
dump()
而不是
var\u dump()
它可以更好地处理ORM对象和循环引用。如果您使用的是旧版本,则可以使用
\doctor\Common\Util\Debug::dump($var)