Mongodb 对旧文档的刷新访问
我可以访问Doctrine2的onFlush事件列表器中的更新文档。 我希望完整的旧文档作为旧状态存储在其他位置Mongodb 对旧文档的刷新访问,mongodb,symfony,doctrine-orm,event-listener,odm,Mongodb,Symfony,Doctrine Orm,Event Listener,Odm,我可以访问Doctrine2的onFlush事件列表器中的更新文档。 我希望完整的旧文档作为旧状态存储在其他位置 public function onFlush(OnFlushEventArgs $eventArgs) { $dm = $eventArgs->getDocumentManager(); $uow = $dm->getUnitOfWork(); foreach ($uow->getScheduledD
public function onFlush(OnFlushEventArgs $eventArgs)
{
$dm = $eventArgs->getDocumentManager();
$uow = $dm->getUnitOfWork();
foreach ($uow->getScheduledDocumentUpdates() as $document) {
// $document is updated document
// $changeSet contains only new and old values
$changeSet = $uow->getDocumentChangeSet($document);
// I want the whole old document object as $oldDocument
}
}
如何访问旧文档而不仅仅是更改集?只需使用预更新事件即可。例如:
public function preUpdate(PreUpdateEventArgs $event)
{
$entity = $event->getEntity(); // the whole entity
$changeSet = $event->getEntityChangeSet(); // only changed properties
// check if password has been changed
if ($event->hasChangedField('password')) {
// do stuff
}
/* ... */
}
你们应该倾听事件:在那个里你们可以得到你们所需要的。