同じエンティティ内に私はPreUpdateとPrePersistがあります。 PreUpdateは起動しますが、PrePersistは実行しません。私はdie()
をフラッシュし、ライフサイクルコールバック内にコメントします。完全なエンティティはDoctrine 2 PrePersistは起動しません。
/**
* @PreUpdate
*/
public function fixDates(){
$this->updatedOn = $this->getNow();
$this->closedDate = null;
$this->openDate = null;
print "dates fixed";
}
/**
* @PrePersist
*/
public function prePersist() {
print 'in prePersist';
die();
}
エンティティマネージャは
$em->persist($school);
$em->flush();
die();
私の画面は、 "日付が固定" 読み込み呼び出しますが、ないprePersistメッセージhttp://pastebin.com/yUk1u4GQ
エンティティのコールバックで見ることができます。私はエンティティの上部に@HasLifecycleCallbacks
を持っています。
Upvoted。 期待通りにコードが機能していないときに、これを難しい方法で見つけました(ステップデバッグを介して)。現在のドキュメントでは、簡単な間違いがあるため、これを十分に明確にしていません。 – iainp999