2015-01-14 117 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);''' –

相關問題