Symfony2,设置用户名然后创建用户
Symfony2, Set username then on create user
我有登录/注册表格。
我没有使用用户名,除了这个在登录时使用电子邮件。还有工具UserInterface.
1) 我应该在用户名实体字段中设置电子邮件吗?
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\Email()
*/
private $username;
2) 也许应该使用自动生成的用户名?例如firstname_lastname。
if ($form->isSubmitted() && $form->isValid()) {
$password = $this->get('security.password_encoder')->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
//Maybe setUsername should be in other place ?
$user->setUsername($user->getName().'_'.$user->getLastName());
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
}
在您的 User.php 实体 class 中添加此方法。它将在用户名字段中设置电子邮件。
/**
* Set username to email.
*
* @ORM\PreUpdate()
* @ORM\PrePersist()
*/
public function setUsernameToEmail()
{
$this->username = $this->email;
$this->usernameCanonical = $this->emailCanonical;
}
我有登录/注册表格。
我没有使用用户名,除了这个在登录时使用电子邮件。还有工具UserInterface.
1) 我应该在用户名实体字段中设置电子邮件吗?
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\Email()
*/
private $username;
2) 也许应该使用自动生成的用户名?例如firstname_lastname。
if ($form->isSubmitted() && $form->isValid()) {
$password = $this->get('security.password_encoder')->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
//Maybe setUsername should be in other place ?
$user->setUsername($user->getName().'_'.$user->getLastName());
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
}
在您的 User.php 实体 class 中添加此方法。它将在用户名字段中设置电子邮件。
/**
* Set username to email.
*
* @ORM\PreUpdate()
* @ORM\PrePersist()
*/
public function setUsernameToEmail()
{
$this->username = $this->email;
$this->usernameCanonical = $this->emailCanonical;
}