Suivi des modifications d'entité dans Doctrine 2
Doctrine 2 fournit un moyen de suivre les champs modifiés d'une entité à l'aide d'EntityManager et d'UnitOfWork.
Supposons que vous ayez une entité $e et que vous modifiiez son field:
$e->setFoo('a'); $e->setBar('b');
Pour récupérer un tableau de champs modifiés :
Obtenir l'UnitOfWork :
$uow = $em->getUnitOfWork();
Calcul Modifications :
$uow->computeChangeSets();
Obtenir les modifications d'entité :
$changeset = $uow->getEntityChangeSet($e);
Le $changeset contiendra toutes les paires attribut-valeur modifiées :
[ 'foo' => ['old' => 'oldFoo', 'new' => 'a'], 'bar' => ['old' => 'oldBar', 'new' => 'b'], ]
Remarque pour la pré-mise à jour Écouteurs :
Si vous tentez de récupérer des champs mis à jour dans un écouteur preUpdate, ignorez le calcul de l'ensemble de modifications car il a déjà eu lieu. Appelez simplement getEntityChangeSet pour récupérer les modifications.
Attention :
L'utilisation de cette méthode en dehors des écouteurs d'événements Doctrine peut perturber son fonctionnement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!