Symfony 2 Obtenir un exemplaire original de données d'entité de l'entité gestionnaire de

Je suis en utilisant Sonata admin bundle pour mon application, tous fonctionne bien,Dans mon application j'ai des utilisateurs et de l'administrateur,l'administrateur peut ajouter/modifier/supprimer des utilisateurs lorsque je suis en train de mettre à jour un utilisateur il y a un problème les données de mot de passe est surdéfinie de l'utilisateur table. j'ai surdéfini la preUpdate méthode de admin contrôleur ,j'ai eu $object qui a une instance de l'entité utilisatrice du manager, de sorte que si l'utilisateur quitte à mettre à jour le mot de passe et sauvegarde des données, le mot de passe est perdu.

public function preUpdate($object)
{
    $Password = $object->getUserPassword();
    if (!empty($Password)) { /* i check here if user has enter password then update it goes well*/
        $salt = md5(time());
        $encoderservice = $this->getConfigurationPool()->getContainer()->get('security.encoder_factory');
        $User = new User();
        $encoder = $encoderservice->getEncoder($User);
        $encoded_pass = $encoder->encodePassword($Password, $salt);
        $object->setUserSalt($salt)->setUserPassword($encoded_pass);
    } else { /* here i try to set the old password if user not enters the new password but fails */
        $object->setUserPassword($object->getUserPassword());
    }
}

Lorsque je tente de régler $object->setUserPassword($object->getUserPassword()); il devient nulle et met à jour le mot de passe que nul son ne pas obtenir les modifier les données que j'ai essayé d'obtenir le référentiel (ci-dessous) pour obtenir le mot de passe mais pas de chance de se le même

$DM = $this->getConfigurationPool()->getContainer()->get('Doctrine')->getManager()->getRepository("...")->find(id here);

Est-il un moyen pour que je puisse accéder aux données d'origine de l'entité en cours au sein de l'entité gestionnaire de

OriginalL'auteur | 2013-11-27