Brave publisher PUBLISHER
Développeur web Front-End dans l'Oise - Gary Deshayes

Symfony, Doctrine | Récupérer les anciennes données d'un formulaire FormType

Développeur web Front-End dans l'Oise - Gary Deshayes <--Translation

Crée le : vendredi 14 février 2020

Méthode pour récuperer les anciennes données d'un formulaire FormType sous Symfony

Il vous est nécessaire de récupérer les anciennes données d'une Entity sous Symfony pour faire un certain traitement tel que la gestion d'une historisation ou autre ? Je vais vous présenter une méthode qui utilise Unit Of Work pour comparer les anciennes données des données envoyées via le formulaire créée par FormType.

Utiliser Unit Of Work de Doctrine

Pour récupérer les anciennes données il faut récupérer Unit Of Work du manager de Doctrine :

$unit_of_work = $this->getDoctrine()->getManager()->getUnitOfWork();

Ensuite nous disons à Unit Of Work de récupérer les changements en cours :

$uow->computeChangeSets();

Grâce à la récupération des changements avec la fonction computeChangeSets() nous pouvons dire à Unit Of Work de récupérer le "ChangeSet" de l'entité voulue, dans mon exemple un article : 

$changeset = $uow->getEntityChangeSet($article);

Et si nous dumpons la variable $changeset avec la fonction dump() nous pouvons voir ces données :

old data formtype symfony

Nous voyons que j'ai modifié le title de mon article, j'ai donc en $changeset["title"][0] mon ancienne donnée et en $changeset["title"][1] la nouvelle donnée, pareil pour le champ updatedAt nous avons la date de modification avant et après.

Vous avez maintenant tout ce qu'il faut pour comparer vos anciennes données, des nouvelles données envoyées par FormType sous Symfony grâce à Doctrine.

Articles récents :

Symfony 5 | Retourner une image via une route d'un controller

Symfony

Crée le : mercredi 1 septembre 2021

VueJS 3, ExpressJS 4.17 | Upload et redimensionnement d'une image

Javascript Framework JS

Crée le : samedi 28 novembre 2020

Symfony Event Subscriber | Restriction d'une plage ip avec un Event Subscriber

Symfony

Crée le : samedi 14 novembre 2020

Angular, ExpressJS | Authentification JWT avec Angular 10 et ExpressJS 4 (MySQL)

Javascript SQL Framework JS

Crée le : dimanche 20 septembre 2020

Symfony, Excel, CSV | Générer un fichier CSV pour Excel avec Symfony

Symfony

Crée le : jeudi 6 août 2020

Symfony FormType ChoiceType | Radio button valeur par défaut dans un FormType

Symfony

Crée le : dimanche 26 juillet 2020

Doctrine, Symfony | Différence entre deux dates sous MySQL (Jour, mois, années...)

Symfony SQL

Crée le : jeudi 18 juin 2020

JavaScript, jQuery et Regex | Sécuriser un mot de passe en temps réel avec JS

Javascript jQuery

Crée le : lundi 23 mars 2020

Symfony, Doctrine | Récupérer les anciennes données d'un formulaire FormType

Symfony

Crée le : vendredi 14 février 2020

jQuery, Webpack et Symfony | Appeler jQuery dans vos fichiers twig

Symfony Bugs

Crée le : dimanche 26 janvier 2020