Maison >développement back-end >tutoriel php >Comment récupérer les champs d'entité modifiés dans Doctrine 2 ?

Comment récupérer les champs d'entité modifiés dans Doctrine 2 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 03:35:01750parcourir

How to Retrieve Changed Entity Fields in Doctrine 2?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn