【发布时间】:2019-04-10 16:32:03
【问题描述】:
我正在尝试更新我的数据库中的一行。
在这种情况下,我使用两个实体 User 和 Token
这是我在控制器中的方法:
/**
* @Route("/forget-password/", name="forget", methods="GET|POST")
*/
public function emailrestore(Request $request, UserRepository $userrepository, TokenGenerator $tokengenerator, MailGenerator $mailgenerator)
{
$userInfo = ['email' => null];
$form = $this->createForm(ForgetPasswordType::class, $userInfo);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$userInfo = $form->getData();
$email = $userInfo['email'];
$user = $userrepository->findOneBy(['email' => $email]);
if ($user === null){
$message = "This email doesn't exist in our database or is wrong.";
$this->session->getFlashBag()->add("danger", $message);
return $this->redirectToRoute('forget');
}
// 2.5) Generating token
$pledge = $tokengenerator->generateToken();
$url = $this->generateUrl('recovery/',
array(
'token' => $pledge
),
UrlGeneratorInterface::ABSOLUTE_URL
);
$user->setToken($pledge);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($token);
$entityManager->flush();
// 6) Sending the email to the user
//$mailgenerator->registration($email, $url);
}
return $this->render('emails/forget-password/forget-password.html.twig', array (
'form' => $form->createView(),
));
}
正如你在 dump($user); 部分看到的那样我通过我的请求获得了以下数据:
据我在同一部分了解,在转储($user)附近。我想使用 $token->setToken($pledge)
方法更新我的用户的新令牌管理这个问题的正确方法是什么?
感谢您的宝贵时间。
【问题讨论】: