编辑用户名和密码

时间:2019-02-06 11:10:58

标签: symfony-forms symfony4

我的Symfony 4应用程序需要帮助。

我尝试编辑用户,但不需要更改密码。

这是我的代码:

   $form = $this->createForm(UtilisateurType::class, $utilisateur);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $utilisateur->setPassword($passwordEncoder->encodePassword($utilisateur, $utilisateur->getPassword()));
        $this->em->merge($utilisateur);
        $this->em->flush();
        $this->addFlash('success', 'Edition Utilisateur avec succés');

        return $this->redirectToRoute('admin.adminadmin.list');
    }

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

当我尝试保存用户时,Symfony的密码为空。


我的FormType是:

$builder
        ->add('nom', TextType::class)
        ->add('prenom', TextType::class)
        ->add(
            'role',
            ChoiceType::class,
            [
            'choices' => [
                'Administrateur' => 'ROLE_ADMIN',
                'Commercial' => 'ROLE_COM',
            ],
            ]
        )
        ->add('quota_fiche', HiddenType::class)
        ->add(
            'username',
            EmailType::class,
            [
            'label' => 'Email',
            ]
        )
        ->add(
            'password',
            RepeatedType::class,
            [
            'type' => PasswordType::class,
            'invalid_message' => 'Les mots de passes ne sont pas identique.',
            'options' => ['attr' => ['class' => 'password-field'], 'always_empty' => false],
            'required' => true,
            'first_options'  => ['label' => 'Mot de Passe'],
            'second_options' => ['label' => 'Confirmer Mot de Passe'],
            ]
        );

我使用这个:

$utilisateur->setPassword($passwordEncoder->encodePassword($utilisateur, $utilisateur->getPassword()));

因为我认为这是在db中获取旧密码的方法。

1 个答案:

答案 0 :(得分:0)

您的问题在这里:

$utilisateur->setPassword($passwordEncoder->encodePassword($utilisateur, $utilisateur->getPassword()));

但是,在确定实际问题之前,我需要先查看您的formType