2011-12-23 22 views
3

エンティティフィールドが手動で設定されていない場合は、エンティティフィールドの1つを自動的に設定します。これを確認する方法はありますか?フィールドにはデフォルト値があるので、単純に値を比較することはできません。私は、ドクトリンがバリューが変更されているかどうか、もし私がその情報にアクセスできるかどうかを考えているかどうか疑問に思っていました。prePersist()で値が変更されたかどうか確認できますか?

また、DoPrine 1のprePersistは、Doctrine 1のpreInsertに相当しますか?私はcreate文でコードを実行するだけですか?あなたがエンティティにDoctrine\ORM\EntityManager#persistを呼び出すとき

おかげ

答えて

3

prePersistイベント(docs about prePersist)がトリガされます。 エンティティの変更を確認する必要がある場合は、onFlushイベント(docs about onFlush)を確認することをお勧めします。そこで、Doctrine\ORM\UnitOfWork APIを使用してエンティティに適用された変更を取得できます。エンティティのトラッキングの変更は、Doctrine\ORM\EntityManager#persist

関連する問題