3

私は Symfony2.3.​​6 プロジェクトに取り組んでいますが、うまくいきます。一部のエンティティに対していくつかの CRUD を使用してバックエンド側を作成しましたが、これもうまく機能します。

今私がやりたいことは、エンティティに対して操作が行われたときにユーザーに通知することです。Symfony1.4 で作成したように、エンティティが保存、更新、または削除されたときに通知したいと考えています。エンティティ内、コントローラー内、またはイベント内でさえ、フラッシュバッグメッセージをどこに置くべきか疑問に思っていました!

この種の機能を配置できる適切な場所はどこですか? また、どのように行うことができますか? ありがとう...

4

1 に答える 1

3

ドキュメントには、これらのメッセージをコントローラーに保存して表示する方法が完全に説明されています。

コントローラーで

public function updateAction(Request $request)
{
    $form = $this->createForm(...);

    $form->handleRequest($request);

    if ($form->isValid()) {
        // do some sort of processing

        $this->get('session')->getFlashBag()->add(
            'notice',
            'Your changes were saved!'
        );

        return $this->redirect($this->generateUrl(...));
    }

    return $this->render(...);
}

Twig テンプレートで

% for flashMessage in app.session.flashbag.get('notice') %}
    <div class="flash-notice">
        {{ flashMessage }}
    </div>
{% endfor %}

エラーなど、他のメッセージには異なるフラッシュバッグを使用できます。

コントローラーで

[...]
        $this->get('session')->getFlashBag()->add(
            'delete',
            'The entity has been deleted!'
        );
[...]

Twig テンプレートで

% for flashMessage in app.session.flashbag.get('delete') %}
    <div class="flash-notice delete">
        {{ flashMessage }}
    </div>
{% endfor %}

CSS を使用してdeleteクラスのスタイルを設定します。

于 2013-11-13T00:25:32.377 に答える