Php 为什么实体getter返回null而不是0?
我在数据库中有一个字段是tinyint 以下是负责此getter的实体的一部分: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() {
/**
* @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)代码>