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 に答える