Symfony 2 Erhalte die ursprünglichen Daten der Entität vom Entity Manager

9

Ich benutze Sonata Admin Bundle für meine Anwendung alles funktioniert gut, In meiner Anwendung habe ich Benutzer und Admin, Admin kann hinzufügen / bearbeiten / löschen die Benutzer, wenn ich versuche, einen Benutzer zu aktualisieren gibt es ein Problem, das Passwort Daten ist Überschrieben von der Benutzertabelle. Ich habe die preUpdate -Methode des Admin-Controllers übersteuert, ich habe $object , das eine Instanz des User-Entity-Managers hat. Wenn der Benutzer das Passwort ändert und die Daten speichert, ist das Passwort verloren.

%Vor%

Wenn ich versuche, $object->setUserPassword($object->getUserPassword()); zu setzen, wird es null und aktualisiert das Passwort als null es wird nicht die Bearbeitungsdaten Ich habe versucht, das Repository (unten) wieder zu bekommen, um das Passwort zu bekommen, aber kein Glück, das gleiche zu bekommen

%Vor%

Gibt es eine Möglichkeit, auf die Originaldaten der aktuellen Entität im Entity Manager zuzugreifen

    
M Khalid Junaid 27.11.2013, 19:50
quelle

2 Antworten

22

Sie können auf die Originaldaten zugreifen, indem Sie die Unit of Work der Doktrin abrufen. Wie in der Dokumentation

  

Sie können direkten Zugang zur Arbeitseinheit erhalten, indem Sie anrufen   EntityManager # getUnitOfWork (). Dies wird die UnitOfWork zurückgeben   Instanz, die der EntityManager gerade verwendet. Ein Array, das   Originaldaten der Entität

Nimm das Passwort von der Arbeitseinheit und verwende es in deiner Setzermethode

%Vor%

Ich hoffe, es funktioniert gut

< stark> Direkter Zugang zu einer Arbeitseinheit

    
M Khalid Junaid 27.11.2013, 20:03
quelle
-3
%Vor%

Lassen Sie also getManager() part;

weg     
Paul Prijs 04.04.2014 13:28
quelle