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
Libérer: 2024-11-08 03:35:01
original
739 Les gens l'ont consulté

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();
Copier après la connexion

2. Calculer les ensembles de modifications

Déclenchez le calcul des ensembles de modifications pour les entités gérées :

$uow->computeChangeSets();
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal