使用Symfony 2.7我想在flash消息中包含HTML:
class MyController extends Controller {
public function someAction(Request $request) {
...
$this->addFlash('success', $tranlator->trans('some.success.msg', array(), 'app'));
...
}
}
// app.yml
some:
success:
msg: Text with some <strong>HTML</strong>
这会创建一条Flash消息
Text with some <strong>HTML</strong>
而不是
包含 HTML
的文字
在我自己的Twig模板中,我会使用raw
过滤器直接显示HTML代码而不是转义版本。但是我怎样才能在addFlash(...)
内实现相同的目标?
答案 0 :(得分:10)
不确定我真的理解你的问题。如果这不是你要求的,只要说出来,我就会删除这个答案 如documentation中所述,您使用
app.session.flashbag.get('success')
检索您的Flash消息。 示例:
{% for flash_message in app.session.flashbag.get('success') %}
{{ flash_message|raw }}
{% endfor %}
答案 1 :(得分:5)
我认为这不能直接完成。但是你可以使用一些html和css来调整显示消息的位置。
像:
设置Flash消息:
$this->get('session')->getFlashBag()->add('notice', array('type' => 'success', 'title' => 'Done!', 'message' => 'OK! It is done!'));
在twig文件中:
{% for msg in app.session.flashbag.get('notice') %}
<div class="alert alert-{{ msg.type }}">
<strong>{{ msg.title }}</strong><br/>{{ msg.message }}
</div>
{% endfor %}