user = new User(); $form = $this->createForm(UserType::class, $this->user); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $this->encodePassword($passwordEncoder); $this->saveUser($translator); return $this->redirectToRoute('login'); } return $this->render("user/register.html.twig", array( 'form' => $form->createView() )); } public function encodePassword(UserPasswordEncoderInterface $passwordEncoder): void { $password = $passwordEncoder->encodePassword($this->user, $this->user->getPlainPassword()); $this->user->setPassword($password); } private function saveUser(TranslatorInterface $translator): void { $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($this->user); try { $entityManager->flush(); $this->addFlash('success', $translator->trans('User "%username%" created!',['%username%'=>$this->user->getUsername()])); } catch (\Exception $exception) { $this->addFlash('danger', $translator->trans('User "%username%" could not be created!',['%username%'=>$this->user->getUsername()])); } } }