我在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();