В моем приложении я отправляю электронное письмо, и когда пользователь щелкает URL-адрес, состояние поля в БД изменяется (обновляется).
В моем контроллере у меня есть:
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-адрес формы электронной почты, и я хочу обновить состояние объекта Conge, когда пользователь нажимает на URL-адрес.
У меня нет исключения, но состояние setEtatConge не меняется. как я могу обновить поле Etat из сущности Conge (Conge существует в моей БД)
1 ответ
В конце действия confirmmeAction необходимо добавить:
$em = $this->getDoctrine()->getManager();
$em->persist($conge);
$em->flush();
Чтобы сохранить данные.
Похожие вопросы
Новые вопросы
symfony
Symfony относится как к фреймворку PHP для создания веб-приложений, так и к набору компонентов, на которых строится фреймворк. Этот тег относится к поддерживаемым в настоящее время основным версиям 3.x, 4.x и 5.x. Кроме того, вы можете указать точную версию, используя соответствующий тег. Этот тег не следует использовать для вопросов о Symfony 1.x. Вместо этого используйте тег Symfony1.
$conge
, вероятно, равно нулю. Пожалуйста, проверьте, какое из ваших предыдущих выражений, использованных для вычисления$conge
, возвращает ноль (я предполагаю, что$this->getDoctrine()->getRepository('acmeCongeBundle:Conge')->find($col)
)