2012-09-14 91 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