在我的应用程序中,我发送电子邮件,当用户点击URL时,DB中字段的状态发生变化(更新)。
在我的控制器中我有:
public function confirmeAction($username)
{
$col = $this->getDoctrine()->getRepository('acmeCongeBundle:Collaborateur')->find($username);
echo $col->getEmailCollaborateur();
$conge = $this->get('gestion_conge.congeservice')->findCongeByCollaborateur($col);
$id = 2;
$conge->setEtatConge($this->get('etat.etatcongeservice')->findEtatById($id));
return $this->render('acmeCongeBundle:Conge:confirmer.html.twig');
}
发送电子邮件的控制器:
$message = \Swift_Message::newInstance()
->setSubject('demande de conge sans solde')
->setFrom($col->getEmailCollaborateur())
->setTo($form->get("emailcdp")->getData())
->setBody($this->renderView('acmeCongeBundle:Conge:demandeCongeNormal.html.twig',array('conge' => $conge )));
$this->get('mailer')->send($message);
和demandeCongeNormal.html.twig包含:
{{ url('confirmer_conge' ,{'username': id }) }}
我获取了发送电子邮件表单URL的用户ID,并且我想在用户clic上更新实体状态Conge。
我也不例外,但setEtatConge的状态并没有改变。如何更新Field Etatfrom实体Conge(我的数据库中存在Conge)
答案 0 :(得分:0)
在您的确认活动结束时,您应该添加:
$em = $this->getDoctrine()->getManager();
$em->persist($conge);
$em->flush();
保存数据。