Изменить пользователя и пароль - PullRequest
0 голосов
/ 06 февраля 2019

Мне нужна помощь, пожалуйста, с моим приложением в 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()));

Потому что я думаю, что это метод получения старого пароля в БД.

1 Ответ

0 голосов
/ 06 февраля 2019

Ваша проблема здесь:

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

Но мне нужно увидеть ваш formType, прежде чем выявлять реальную проблему

...