我需要帮助,请与我在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获得旧密码的方法。
你的问题是在这里:
$utilisateur->setPassword($passwordEncoder->encodePassword($utilisateur, $utilisateur->getPassword()));
但是,我要看看你的formType识别真正的问题之前,