在不更改密码的情况下更新UserEntiy

时间:2018-12-19 10:41:02

标签: php symfony symfony4

我在Symfony 4上拥有user registration的用户实体

我有一个具有密码的用户实体。

现在,我想通过Sonata Admin Bundle更新行的某些部分。

但是由于没有密码,它未能更新用户实体。

在我的UserAdmin.php中

$formMapper->add('email');
$formMapper->add('nickName',null,array('required' => false));
$formMapper->add('enabled',null,array('required' => false));

我只想更改昵称或电子邮件,而无需触摸密码。

在实体中,我不使用验证,请像这样使用Assert

User.php

/**
 * @Assert\NotBlank()
 * @Assert\Length(max=4096)
 */
private $plainPassword;

/**
 * The below length depends on the "algorithm" you use for encoding
 * the password, but this works well with bcrypt.
 *
 * @ORM\Column(type="string", length=64)
 */
private $password;

注册时,它在Controller中的工作原理很好。

$password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);

$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();

0 个答案:

没有答案