0

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

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

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

我怎么能做到这一点?

4

1 回答 1

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

这只是一个基本示例,需要根据您的项目进行调整。

于 2012-05-01T10:30:53.370 回答