get('session'); if (null !== $session->get('user')) { $session->save(); return $this->redirectToRoute('home'); } $user = new User(); // Instanciation du fromBuilder $formBuilder = $this->createFormBuilder(); // Ajout des champs $formBuilder ->add('identifiant', TextType::class) ->add('mot_de_passe', RepeatedType::class, array( 'type' => PasswordType::class, 'first_options' => array('label' => 'Mot de passe'), 'second_options' => array('label' => 'Répéter le mot de passe') )) ->add('description', TextareaType::class, ['required' => false]) ->add('profil_prive', CheckboxType::class, ['required' => false]) ->setAction($this->generateUrl('register')); // Génération du formulaire $form = $formBuilder->getForm(); if ($request->getMethod() == 'POST') { $form->handleRequest($request); if ($form->isValid()) { $chosen_username = $form->get("identifiant")->getData(); $em = $this->getDoctrine()->getManager(); $repository_profile = $em->getRepository(User::class); $profile = $repository_profile->findOneBy(array('username' => $chosen_username)); if ($profile) { return $this->render('register/index.html.twig', [ 'message' => "Nom d'utilisateur déjà existant", 'form' => $form->createView() ]); } $user->setUsername($form->get("identifiant")->getData()); $encoded_passwd = $encoder->encodePassword($user, $form->get('mot_de_passe')->getData()); $user->setPassword($encoded_passwd); $user->setIsPrivate($form->get("profil_prive")->getData()); $user->setDescription($form->get('description')->getData()); $em->persist($user); $em->flush(); return $this->redirectToRoute('index'); } } return $this->render('register/index.html.twig', [ 'form' => $form->createView(), 'message' => "" ]); } }