Как обработать FormFlow в Symfony? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть этот код в RegistrationController :

$formData = new User(); // Your form data class. Has to be an object, won't work properly with an array.

        $flow = $registrationFormFlow; // must match the flow's service id
        $flow->bind($formData);

        // form of the current step
        $form = $flow->createForm();
        if ($flow->isValid($form)) {
            $flow->saveCurrentStepData($form);

            if ($flow->nextStep()) {
                // form for the next step
                $form = $flow->createForm();
            } else {
                // flow finished
                $em = $this->getDoctrine()->getManager();
                $em->persist($formData);
                $em->flush();

                $flow->reset(); // remove step data from the session

                return $this->redirect($this->generateUrl('home')); // redirect when done
            }
        }
        return $this->render('registration/register.html.twig', [
            'form' => $form->createView(),
            'flow' => $flow,
        ]);

Я хотел бы знать, как я могу кодировать пароль, который передается на первом шаге потока? До того, как я начал использовать craue / CraueFormFlowBundle, все выглядело так:

 $user = new User();
        $form = $this->createForm(RegistrationFormType::class, $user);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            // encode the plain password
            $user->setPassword(
                $passwordEncoder->encodePassword(
                    $user,
                    $form->get('plainPassword')->getData()
                )
            );

            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($user);
            $entityManager->flush();

            // Do anything else you need here, like send an email

            return $guardHandler->authenticateUserAndHandleSuccess(
                $user,
                $request,
                $authenticator,
                'main' // firewall name in security.yaml
            );
        }

        return $this->render('registration/register.html.twig', [
            'registrationForm' => $form->createView(),
        ]);

Спасибо за помощь и хорошего дня.

...