Verfolgen von Entitätsänderungen in Doktrin 2
Doktrin 2 bietet eine Möglichkeit, die geänderten Felder einer Entität mithilfe von EntityManager und UnitOfWork zu verfolgen.
Angenommen, Sie haben eine Entität $e und ändern ihre Felder:
$e->setFoo('a'); $e->setBar('b');
So rufen Sie ein Array geänderter Felder ab:
Obtain the UnitOfWork:
$uow = $em->getUnitOfWork();
Änderungen berechnen:
$uow->computeChangeSets();
Get Entity Änderungen:
$changeset = $uow->getEntityChangeSet($e);
Das $changeset enthält alle geänderten Attribut-Wert-Paare:
[ 'foo' => ['old' => 'oldFoo', 'new' => 'a'], 'bar' => ['old' => 'oldBar', 'new' => 'b'], ]
Hinweis für PreUpdate-Listener:
Wenn Sie versuchen, aktualisierte Felder innerhalb eines PreUpdate-Listeners abzurufen, überspringen Sie die Berechnung des Änderungssatzes, da diese bereits durchgeführt wurde. Rufen Sie einfach getEntityChangeSet auf, um die Änderungen abzurufen.
Warnung:
Die Verwendung dieser Methode außerhalb von Doctrine-Ereignis-Listenern kann ihren Betrieb stören.
Das obige ist der detaillierte Inhalt vonWie kann man Entitätsänderungen in Doktrin 2 verfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!