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.