Doctrine orm 如何在事件侦听器中持久化实体?
是否可以在事件侦听器中持久化实体?我正在尝试实现审计跟踪功能:Doctrine orm 如何在事件侦听器中持久化实体?,doctrine-orm,Doctrine Orm,是否可以在事件侦听器中持久化实体?我正在尝试实现审计跟踪功能: public function preUpdate($eventArgs) { if ($eventArgs->getEntity() instanceof \Domain\Entity\Customer) { $customerAuditTrail = new \Domain\Entity\CustomerAuditTrail(); if ($eventArgs->hasChangedField(
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);
}
}
}
保存操作运行正常,但CustomerAuditRail尚未保留在数据库中。您可以在
onFlush
事件中插入其他实体,您可以在中看到一个示例