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.
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
Gibt es eine Möglichkeit, auf die Originaldaten der aktuellen Entität im Entity Manager zuzugreifen
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
Tags und Links php symfony doctrine2 sonata-admin sonata