2012-02-29 64 views
0

我已經成功實現了使用此示例的我的實體的審計跟蹤:http://www.doctrine-project.org/blog/doctrine2-versionableDoctrine 2在INSERT上可版本化

一切工作正常,即使有關係。

問題:

如果記錄不存在於數據庫中,教條2執行INSERT(如預期),但它也寫了審計跟蹤但RESOURCEID = 0,因爲它不(新)實體的ID在刷新之前不知道。

在這種情況下,我總是失去對記錄的第一次審覈,實際上從來不知道創建記錄的人/時間。

我認爲這個問題是在這裏:

public function onFlush(OnFlushEventArgs $args) 
{ 
    $em = $args->getEntityManager(); 
    $uow = $em->getUnitOfWork(); 

    foreach ($uow->getScheduledEntityInsertions() AS $entity) { 
     if ($entity instanceof Versionable) { 
      $this->_makeSnapshot($entity); 
     } 
    } 

    foreach ($uow->getScheduledEntityUpdates() AS $entity) { 
     if ($entity instanceof Versionable) { 
      $this->_makeSnapshot($entity); 
     } 
    } 
} 

回答