2015-01-14 88 views
4

我在tinyint的数据库中有一个字段。为什么实体getter返回null而不是0?

这里是负责此获取的实体的一部分:

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

/** 
* Get showamounts 
* 
* @return integer 
*/ 
public function getShowamounts() 
{ 
    return $this->showamounts; 
} 

如果showamounts = 0,那么

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

当我投消气剂诠释它的工作,但我100%肯定当我写代码时(几个月前),一切正常。所以我的问题是,发生了什么?也许是因为这个,实体中的var被定义为布尔值?我只是想存储0或1

+0

,并且数据库列的类型? – COil

+0

你应该考虑把'''private $ showamounts = 1;'''改成'''private $ showamounts = true;'''。对于mysql来说,Doctrine会将true,false转换为1,0,但在您的应用程序中,您应始终对类型''boolean'''使用true和false。 –

回答

4

尝试的var_dump你的价值为:

var_dump($o->getShowamounts()); 
+1

返回bool(false),因此可能是var定义错误。 – poh

+0

从Symfony 2.6开始,您应该使用dump()而不是var_dump(),它可以更好地处理ORM对象和循环引用。 – COil

+1

如果你使用的是旧版本,你可以使用'''\ Doctrine \ Common \ Util \ Debug :: dump($ var);''' –

相关问题