我想在填写表格时创建一个确认窗口。
现在,我填写表单,如果表单有效,则实体将被持久化并返回一个视图,其中我的实体作为参数。但这不是我想要的。
如果表单有效,我不想保留该实体。如果它有效,则必须使用我的参数(实体)显示视图,然后如果我的用户单击按钮进行确认,则保留实体并重定向到其他视图。如果我的用户单击要返回的按钮,则使用JavaScript函数:javascript:history.back(1)
。
我怎么能这样做?
答案 0 :(得分:0)
一种简单的方法是将您绑定的实体存储在会话中(闪存),并在确认持久性后检索它。
在“saveForm”操作中:
if ($form->isValid()) {
$myEntity = $form->getData();
$this->get('session')->setFlash('my_entity', $myEntity);
return $this->render('MyBundle:Controller:confirmation.html.twig', array(
'entity' => $myEntity
));
}
在你的“confirmSave”行动中:
$myEntity = $this->get('session')->getFlash('my_entity');
$this->em->persist($myEntity);
$this->em->flush();
这只是一个基本的例子,它需要适应你的项目。