Ich habe eine CRUD erstellt, mit der ich Benutzer, Vereine und Schulen in einem Backoffice erstellen kann.Probleme bei der Anmeldung mit einem neu erstellten Benutzer
Aus einem unbekannten Grund kann ich mich jedoch nicht mit einem erstellten Benutzer mit dem Passwort einloggen, das ich ihm gegeben habe.
Hier ist mein Controller (der Teil, in dem der Benutzer erstellt wird)
/**
* Creates a new User entity.
*
* @Route("/new", name="user_new")
* @Method({"GET", "POST"})
*/
public function newAction(Request $request)
{
$user = new User();
$form = $this->createForm('UserBundle\Form\UserType', $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$password = $this->get('security.password_encoder')->encodePassword($user, $user->getPassword());
$user->setPassword($password);
$em->persist($user);
$em->flush();
return $this->redirectToRoute('user_show', array('id' => $user->getId()));
}
return $this->render('user/new.html.twig', array(
'user' => $user,
'form' => $form->createView(),
));
}
Nach Registrierung eines neuen Benutzers, wenn ich es in der fos_user Tabelle zu überprüfen, kann ich sehen, dass das Passwort verschlüsselt wurde. Wenn ich jedoch versuche, mich mit dem Passwort anzumelden, das ich verwendet habe, erhalte ich einfach "schlechte Anmeldeinformationen" aus meinem Login-Formular.
Ich kann nicht herausfinden, warum. Sagen Sie mir, wenn Sie eine andere Datei sehen müssen, werde ich meine Frage aktualisieren
Eine Idee?
Vielen Dank im Voraus
Mögliches Duplikat von [Symfony2 $ user-> setPassword() aktualisiert das Passwort als Klartext \ [DataFixtures + FOSUserBundle \]] (http://stackoverflow.com/questions/9183368/symfony2-user-setpassword-updates-password -as-plain-text-datafixtures-fos) – CountZero
Ich möchte meine Datenbank nicht füllen, ich möchte, dass mein Administrator Benutzer mit einem einfachen Registerformular erstellen kann ... Ich habe das Beispiel im Kochbuch aber immer noch versucht versagt; – Jaeger
ok, ich werde es hier beantworten dann – CountZero