2015-11-25 150 views
1

我陷進錯誤時嘗試生成在Symfony2的CRUD我總是得到以下異常:Symfony2的日期時間TransformationFailed異常

"Unable to transform value for property path "xxx": Expected a \DateTime or \DateTimeInterface." 

它總是與任何日期時間字段發生在這裏是我的實體領域的摘錄:

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date_added", type="datetime", nullable=false) 
*/ 
private $dateAdded = '0000-00-00 00:00:00'; 


/** 
* Set dateAdded 
* 
* @param \DateTime $dateAdded 
* 
* @return User 
*/ 
public function setDateAdded() 
{ 
    $this->dateAdded = new \DateTime(); 

    return $this; 
} 

/** 
* Get dateAdded 
* 
* @return \DateTime 
*/ 
public function getDateAdded() 
{ 
    return $this->dateAdded; 
} 

- 也我試圖用easyadmin bundle其產生使用上飛Symfony2的CRUD實體後端也得到了同樣的錯誤,從而是有什麼錯我的實體?

回答

0

$dateAdded字段不能包含字符串。它需要有一個DateTime對象,因爲這是預期的。換句話說,你需要有一個構造函數,設置日期:

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date_added", type="datetime", nullable=false) 
*/ 
private $dateAdded; 

public function __construct() { 
    $this->dateAdded = new \DateTime(); 
} 

此外,您還需要接受一個參數上您setDate方法:

public function setDate($date) { 
    $this->dateAdded = $date; 
} 

作爲一個方面說明,記住你將需要使用date過濾器,如果你會在一個樹枝模板顯示日期:

{{ entity.dateAdded|date('d.m.Y') }} 
0

也許去掉註釋@param \DateTime $dateAdded因爲你的function setDateAdded()沒有參數?