我可以检查prePersist()中的值是否已更改?

时间:2011-12-23 07:48:54

标签: doctrine-orm

如果没有手动设置,我想自动设置其中一个实体字段。有没有办法检查这个?这些字段有一个默认值,所以我不能简单地比较该值。我想知道教义是否维护价值是否改变以及我是否可以访问该信息。

此外,Doctrine 2中的prePersist相当于Doctrine 1中的preInsert吗?我怎样才能确保我只在create statement上运行代码?

由于

1 个答案:

答案 0 :(得分:3)

当您在实体上调用prePersist时,会触发Doctrine\ORM\EntityManager#persist事件(docs about prePersist)。 如果您需要检查实体的更改,建议您检查onFlush事件(docs about onFlush)。在那里,您可以使用Doctrine\ORM\UnitOfWork API获取已应用于实体的任何更改。在调用Doctrine\ORM\EntityManager#persist

后,会发生对实体的跟踪更改