DB symfony2中的更新字段

时间:2014-08-18 13:43:26

标签: symfony

在我的应用程序中,我发送电子邮件,当用户点击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)

1 个答案:

答案 0 :(得分:0)

在您的确认活动结束时,您应该添加:

$em = $this->getDoctrine()->getManager();
$em->persist($conge);
$em->flush();

保存数据。