我的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中获取旧密码的方法。
答案 0 :(得分:0)
您的问题在这里:
$utilisateur->setPassword($passwordEncoder->encodePassword($utilisateur, $utilisateur->getPassword()));
但是,在确定实际问题之前,我需要先查看您的formType