2014-01-29 42 views
1

問題:Symfony在MySQL數據庫中設置日期時間

在DB Web應用程序中,日期/時間字段非常常見。

當Symfony的,你嘗試做任何的follwings的:

$creationDate=new DateTime(); 
$record->setCreationDate($creattionDate); 

這將創建一個「對象日期時間不能被轉換成字符串」的錯誤。

或者:

$creationDate=new DateTime(); 
$datestr=$creationDate->format('Y-m-d H:i:s'); 
$record->setCreationDate($datestr); 

這將 「在非ojbect調用方法格式()」 錯誤創建。

回答

-2

解決方案:

破解DateTimeType.php位於:您的symfony根/供應商/教義/ DBAL/lib中/教義/ DBAL /類型/ DateTimeType.php名爲convertToDatabaseValue

原創內容的功能:

return ($value !== null) 
    ? $value->format($platform->getDateTimeFormatString()) : null; 

看來Symfony正在做一些額外的轉換,當參數已經是字符串了。

更改爲:

return ($value !== null) 
      ? $value : null; 

會做的伎倆。

1

在您的實體中,您必須map您的字段具有日期或日期時間類型。

@ORM \ Column(name =「creationDate」,type =「date」,nullable = true)