Symfony2 - 在实体操作上添加闪存袋消息



我正在做一个Symfony2.3.6项目,效果很好。我已经为某些实体制作了一些 CRUD 的后端,它也很好用。

现在我想做的是在对实体进行操作时通知用户。所以我想通知一个实体何时被保存,更新或删除,就像Symfony1.4所做的那样。我不确定将闪光袋消息放在哪里,是在实体中还是在控制器中,甚至是在事件中?!

哪个地方可以放置这种功能,我该怎么做?谢谢。。。

该文档完美地描述了如何在控制器中存储和显示这些消息。

在控制器中

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

在您的树枝模板中

% 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!'
        );
[...]

在您的树枝模板中

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

使用 CSS 设置delete类的样式。

最新更新