我正在开发一个 Symfony2.3.6 项目,效果很好。我已经为一些实体制作了一个带有一些 CRUD 的后端,它也很好用。
现在我要做的是在对实体进行操作时通知用户。所以我想通知一个实体何时被保存、更新或删除,就像 Symfony1.4 所做的那样。我怀疑将 flashbag 消息放在哪里,如果在实体中,在控制器中,甚至在事件中?!
我可以在哪个地方放置这种功能,我该怎么做?谢谢...
我正在开发一个 Symfony2.3.6 项目,效果很好。我已经为一些实体制作了一个带有一些 CRUD 的后端,它也很好用。
现在我要做的是在对实体进行操作时通知用户。所以我想通知一个实体何时被保存、更新或删除,就像 Symfony1.4 所做的那样。我怀疑将 flashbag 消息放在哪里,如果在实体中,在控制器中,甚至在事件中?!
我可以在哪个地方放置这种功能,我该怎么做?谢谢...
该文档完美地描述了如何在控制器中存储和显示这些消息。
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 %}
您可以将不同的 flashbags 用于其他消息,例如错误:
[...]
$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
类的样式。