get('session')->get('user'); $em = $this->getDoctrine()->getManager(); $repository_profile = $em->getRepository(User::class); $sessionUser = $this->get('session')->get('user'); $profile = $repository_profile->findOneBy(array('username' => $sessionUser)); // Création du formulaire $values = array( 'description' => $profile->getDescription(), 'profil_prive' => $profile->getIsPrivate(), ); $formBuilder = $this->createFormBuilder($values); // Ajout des champs $formBuilder ->add('mot_de_passe', RepeatedType::class, array( 'type' => PasswordType::class, 'required' => false, 'first_options' => array('label' => 'Changer le mot de passe'), 'second_options' => array('label' => 'Répéter le nouveau mot de passe') )) ->add('description', TextareaType::class, ['required' => false, 'label' => 'Changer la description']) ->add('profil_prive', CheckboxType::class, ['required' => false, 'label' => 'Profil privé']) ->setAction($this->generateUrl('parameters', array('username' => $sessionUser))); // Génération du formulaire $form = $formBuilder->getForm(); // Initialisation du message $message = ""; // Si le formulaire modifié est envoyé (POST) if ($request->getMethod() == 'POST') { $form->handleRequest($request); if ($form->isValid()) { if ($form->get('mot_de_passe')->getData()) { $encoded_passwd = $encoder->encodePassword($profile, $form->get('mot_de_passe')->getData()); $profile->setPassword($encoded_passwd); } $profile->setIsPrivate($form->get("profil_prive")->getData()); $profile->setDescription($form->get('description')->getData()); $em->persist($profile); $em->flush(); $message = "Profil modifié."; } } return $this->render('parameters/index.html.twig', [ 'form' => $form->createView(), 'username' => $sessionUser, 'message' => $message, ]); } }