Как сохранить сущность внутри слушателя событий? - PullRequest
1 голос
/ 28 июля 2011

Возможно ли сохранить сущность внутри прослушивателя событий? Я пытаюсь реализовать функцию аудита:

public function preUpdate($eventArgs)
{
  if ($eventArgs->getEntity() instanceof \Domain\Entity\Customer) {
    $customerAuditTrail = new \Domain\Entity\CustomerAuditTrail();

    if ($eventArgs->hasChangedField('FirstName')) {
      $customerAuditTrail->setAction('Update');
      $customerAuditTrail->setField('FirstName');
      $customerAuditTrail->setCustomer($eventArgs->getEntity());

      $customerAuditTrail->setOldValue($eventArgs->getOldValue('FirstName'));
      $customerAuditTrail->setNewValue($eventArgs->getNewValue('FirstName'));
      ...

      $this->_em->persist($customerAuditTrail);
    }
  }
}

Операция сохранения работает нормально, но customerAuditTrail не был сохранен в базе данных.

1 Ответ

0 голосов
/ 13 ноября 2011

Вы можете вставить другие объекты в событие onFlush, вы можете увидеть пример в http://www.doctrine -project.org / blog / doctrine2-versionable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...