2012-09-14 97 views
1

我想通過使用下面的代碼插入日期時間在MySQL日期時間列,但它沒有被插入。而isDelete工作正常。Doctrine2試圖插入日期時間(「現在」)到MySQL日期時間列

/* 
* 
* @ORM\Column (type="datetime") 
*/ 
protected $created; 

/** 
* @ORM\PrePersist 
*/ 
public function prePersist(){ 
    $this->created = new \DateTime("now"); 
    $this->isDelete = 0;   
} 

生成的模式:

+-----------+------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+-----------+------------+------+-----+---------+----------------+ 
| id  | int(11) | NO | PRI |   | auto_increment | 
| isDeleted | tinyint(4) | YES |  | 0  |    | 
| created | datetime | YES |  |   |    | 
+-----------+------------+------+-----+---------+----------------+ 

任何想法?

Reference

+0

你能後的結果'DESCRIBE yourtable'? – Florent

+0

ID \t INT(11)\t \t NO PRI \t \t AUTO_INCREMENT 請將isDeleted \t TINYINT(4)\t \t YES 0 \t \t 創建\t \t日期時間YES – Developer

+0

Onething我只注意到。如果我將數據類型從datetime更改爲數據庫中的時間戳記,它就開始工作。所以問題是與日期的格式? – Developer

回答

2

你缺少/*以上的protected $created財產後*,所以它不是一個文檔塊註釋,ERGO沒有被解析爲註釋。因此,該領域沒有被主義認可。

它應該閱讀:

/** 
* 
* @ORM\Column (type="datetime") 
*/ 
protected $created; 

你解決這個問題後,運行原則架構更新工具。

0

你有沒有* @ORM\HasLifecycleCallbacks()在班上?

可能刪除似乎工作,但你只能看到一個整型字段(0)的默認值

+0

我想我在上面提到我的問題是刪除工作正常。這意味着我已經放置了那個東西:)首先閱讀問題。 – Developer