0

Symfony にデータを保存するときに、モーダル ウィンドウ (Twitter Bootstrap Modal Component) を表示したいと思います。タスクを使用doctrine:generate-moduleしてモジュールをビルドしましたが、[保存] ボタンをクリックしてデータが保存されたときにウィンドウを表示する方法がわかりません。なにか提案を?

編集: doctrine:generate-admin (間違った) から doctrine:generate-module (正しい) に変更されました

4

1 に答える 1

3

現在のオブジェクトを保存するアクションごとに、ジェネレーターは成功メッセージを含むフラッシュメッセージを定義します。

ジェネレーターのアクション テンプレート内でそれらを確認できます。

$this->getUser()->setFlash('notice', $notice);

点滅メッセージは、 というテンプレート内に表示されます_flashes.php。すべてがうまくいった場合、通知フラッシュがアクションで定義され、表示されます。

<div class="notice">[?php echo __($sf_user->getFlash('notice'), array(), 'sf_admin') ?]</div>

あなたがしなければならないことは、_flashes.phpテンプレートフォルダー内にファイルを作成し、javascript を記述してブートストラップモーダルを開くことです。何かのようなもの:

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p><?php echo __($sf_user->getFlash('notice'), array(), 'sf_admin') ?></p>
  </div>
</div>

<script type="text/javascript">
    $('#myModal').modal('show')
</script>

この場合、通知メッセージのみが対象となります。また、エラーをカバーする必要があります。


アップデート:

Doctrine Admin Generator ではなく Doctrine Generated Module を使用しているため、フラッシュ メッセージを使用するには、次の手順を実行する必要があります。

アクション内で、 を見つけてprocessForm通知を追加します。

protected function processForm(sfWebRequest $request, sfForm $form)
{
    $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';

    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
        $alumnos = $form->save();

        $this->getUser()->setFlash('notice', $notice);

        $this->redirect('alumnos/new');
        // $this->redirect('alumnos/edit?id=' . $alumnos->getId());
    }
    else
    {
        $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false);
    }
}

次に、前に作成した同じ_flashes.phpテンプレートを追加して含めることがnewSuccess.phpできます (フォームを保存した後にユーザーをこのアクションにリダイレクトするため)。

<?php include_partial('flashes') ?>
于 2013-03-11T15:26:54.007 に答える