我怎么办确认窗口?

时间:2012-05-01 09:35:11

标签: symfony twig

我想在填写表格时创建一个确认窗口。

现在,我填写表单,如果表单有效,则实体将被持久化并返回一个视图,其中我的实体作为参数。但这不是我想要的。

如果表单有效,我不想保留该实体。如果它有效,则必须使用我的参数(实体)显示视图,然后如果我的用户单击按钮进行确认,则保留实体并重定向到其他视图。如果我的用户单击要返回的按钮,则使用JavaScript函数:javascript:history.back(1)

我怎么能这样做?

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();

这只是一个基本的例子,它需要适应你的项目。