Symfony fosuserbundle在创建用户时设置确认令牌
当我使用fosuserbundle在自己的控制器上创建用户时,我的用户没有确认令牌(在数据库中)。我如何创建这个Symfony fosuserbundle在创建用户时设置确认令牌,symfony,fosuserbundle,Symfony,Fosuserbundle,当我使用fosuserbundle在自己的控制器上创建用户时,我的用户没有确认令牌(在数据库中)。我如何创建这个 $userManager = $this->get('fos_user.user_manager'); $userCreate = $userManager->createUser(); $userCreate->setUsername($user->getUsername()); $userCr
$userManager = $this->get('fos_user.user_manager');
$userCreate = $userManager->createUser();
$userCreate->setUsername($user->getUsername());
$userCreate->setEmail($user->getEmail());
$userCreate->setEmailCanonical($user->getEmail());
$userCreate->setPlainPassword($user->getPassword());
$userCreate->setEnabled(true);
$userManager->updateUser($userCreate, true);
这是正常的吗 确认令牌是使用事件注册成功创建的,当该事件被分派时,事件侦听器应提供令牌并发送电子邮件,以允许创建的用户确认其地址 在您的情况下,应配置fosUser的电子邮件配置。结束时,确认令牌和电子邮件将起作用 看那里:
为什么要使用控制器?您好,因为我添加了一些字段和custum操作。在这种情况下,您应该使用事件,而不是覆盖控制器:感谢您的解释:)
/**
* @param FormEvent $event
*/
public function onRegistrationSuccess(FormEvent $event)
{
/** @var $user \FOS\UserBundle\Model\UserInterface */
$user = $event->getForm()->getData();
$user->setEnabled(false);
if (null === $user->getConfirmationToken()) {
$user->setConfirmationToken($this->tokenGenerator->generateToken());
}
$this->mailer->sendConfirmationEmailMessage($user);
$this->session->set('fos_user_send_confirmation_email/email', $user->getEmail());
$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
}