2016-10-06 13 views
1

が、私はPostPersist/PostUpdate機能にPostPersist教義でスリムv3の私はスリムV3との教義を使用

を持つようにしたい、これは私のエンティティ

namespace App\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* 
* @ORM\Table(name="xxxx", indexes={@ORM\Index(name="xxxx", columns={"xxxx"})}) 
* @ORM\Entity 
* @ORM\HasLifecycleCallbacks() 
*/ 
class MyEntity 
{ 

.... 

/** 
* Set lastUpdate 
* 
* @param \DateTime $lastUpdate 
* 
* 
* @ORM\PostPersist() 
* @ORM\PostUpdate() 
*/ 
public function setLastUpdate($lastUpdate) 
{ 
    $this->last_update = new \DateTime('now'); 


    return $this; 
} 

あるしかし、私はエンティティを永続化すると、私のフィールドがNullのまま

答えて

1

データベースの値を変更する場合は、間違ったイベントをリッスンしています。 docにについて:

  • postPersist - エンティティが永続化された後postPersistイベントがエンティティのために発生します。データベース の挿入操作の後に呼び出されます。生成された主キー値は、 postPersistイベントで使用できます。
  • postUpdate - postUpdateイベントは、エンティティデータへのデータベース更新操作の後に発生します。 DQL UPDATE ステートメントには呼び出されません。だから、より良いあなたの代わりにpostイベントのpreイベントを処理

。例として:

/** 
* 
* @ORM\PrePersist() 
* @ORM\PreUpdate() 
*/ 
public function setLastUpdate() 
{ 
    $this->last_update = new \DateTime('now'); 


    return $this; 
} 

・ホープ、このヘルプ

+0

パーフェクトありがとう! – monkeyUser