Gibt es eine integrierte Möglichkeit, alle geänderten/aktualisierten Felder in einer Lehre-2-Entität abzurufen?
Ja, Doctrine 2 bietet eine integrierte Möglichkeit, die geänderten Felder in einer Entität zu erhalten. Die Klasse UnitOfWork
, die für das Nachverfolgen von Änderungen an Entitäten verantwortlich ist, hat eine Methode namens getEntityChangeSet()
, die ein Array von Änderungen an einer bestimmten Entität zurückgibt. Die Array-Keys sind die Feldnamen und die Werte sind ein Array mit den alten und neuen Werten des Feldes.
Zum Beispiel können Sie diese Methode wie folgt verwenden:
<?php
$entity = // ...
$uow = $entityManager->getUnitOfWork();
$changeSet = $uow->getEntityChangeSet($entity);
Sie können auch die Methode getScheduledEntityUpdates()
verwenden, um alle Entitäten abzufragen, die für eine Update-Operation während eines flush-Vorgangs geplant wurden.