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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder aux données d'origine par l'obtention de la doctrine de l' Unité de Travail.Comme de docs
Saisir le mot de passe à partir de l'Unité de Travail et à utiliser dans votre méthode de définition
Espère que ça fonctionne bien
accès Direct à une Unité de Travail
OriginalL'auteur M Khalid Junaid
Afin de laisser le
getManager()
partie;OriginalL'auteur Paul Prijs