2

次のコードを使用してmysqldatetime列に日時を挿入しようとしていますが、挿入されていません。isDeleteは正常に機能しています。

/*
 * 
 * @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  |     |         |                |
+-----------+------------+------+-----+---------+----------------+

何か案が?

参照

4

2 に答える 2

2

You're missing a * after the /* above your protected $created property, so it's not a docblock comment and ergo isn't being parsed as an annotation. Thus, the field is not being recognized by Doctrine.

It should read:

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

After you fix this, run the Doctrine schema update tool.

于 2012-09-14T15:33:12.810 に答える
1

* @ORM\HasLifecycleCallbacks()クラスのトップにいますか?

おそらく削除は機能しているようですが、整数フィールド(0)のデフォルト値しか表示されません

于 2012-09-14T16:55:12.327 に答える