Details
-
Type:
Documentation
-
Status:
Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Documentation
-
Security Level: All
-
Labels:None
-
Environment:Browser
Description
Please make it more clear that prePersist and postPersist events are called only when creating new entity (that is, prior and after a database insert).
IRC log:
helmer
Hi. I have a question regarding (pre|post)persist events. Why are the events ignored for second persist (should fire prePersist) + flush (should fire postPersist) in the following pastie: http://pastebin.com/V8CrPWkM Is it a bug or am I missing sth?
Stof
helmer: there is no second persist. persist() means saying Doctrine to manage the entity. Once it is managed, you are not persisting it anymore but updating it
helmer
Stof: so basically one could define these two events for themselves as (pre|post)Insert?
beberlei
yes
helmer
thanks beberlei&stof! though a suggestion to docteam .. perhaps make it more clear to people like me, current doc can be kind of misleading ie: "There are two ways for the prePersist event to be triggered. One is obviously when you call EntityManager#persist()" http://www.doctrine-project.org/docs/orm/2.0/en/reference/events.html#prepersist
Pastie code (probably expired by now):
$entity = new Entity();
$entity->setSomething('xxx');
$this->em->persist($entity);
$this->em->flush();
$entity->setSomething('yyy');
$this->em->persist($entity);
$this->em->flush();