Récupération des champs d'entité modifiés avec Doctrine 2
Lors de la modification de l'état d'une entité à l'aide de setters, il est souvent utile de savoir quels champs ont été modifiés . Doctrine 2 fournit un mécanisme pour récupérer ces informations.
Pour obtenir la liste des champs modifiés, suivez ces étapes :
1. Récupérer l'Unité de Travail
Commencez par récupérer l'Unité de Travail (UoW) associée au Gestionnaire d'Entité :
$uow = $em->getUnitOfWork();
2. Calculer les ensembles de modifications
Déclenchez le calcul des ensembles de modifications pour les entités gérées :
$uow->computeChangeSets();
3. Récupérer l'ensemble de modifications d'entité
Utilisez la méthode getEntityChangeSet de l'UoW pour récupérer les modifications spécifiques apportées à l'entité souhaitée :
$changeset = $uow->getEntityChangeSet($entity);
Remarque pour les auditeurs de pré-mise à jour :
Si vous accédez à des champs modifiés dans un écouteur preUpdate, ne recalculez pas les ensembles de modifications car ils ont déjà été calculés. Récupérez simplement l'ensemble de modifications directement.
Avertissement :
Cette solution est destinée à être utilisée uniquement dans les écouteurs d'événements Doctrine et ne doit pas être utilisée en dehors de ce contexte. Cela pourrait perturber le comportement normal de Doctrine.
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!