Мне нужна помощь, пожалуйста, с моим приложением в 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()));
Потому что я думаю, что это метод получения старого пароля в БД.