And*_*ord 4 html php symfony twig
使用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>
Run Code Online (Sandbox Code Playgroud)
这会创建一个Flash消息
Text with some <strong>HTML</strong>
Run Code Online (Sandbox Code Playgroud)
代替
带有一些HTML的文字
在我自己的Twig模板中,我将使用raw
过滤器,直接显示HTML代码而不是转义版本.但是我怎么能在内部实现同样的目标addFlash(...)
呢?
Isk*_*sky 11
不确定我真的理解你的问题.如果这不是你要求的,只是说出来,我会删除这个答案.
如您在文档中所述
app.session.flashbag.get('success')
Run Code Online (Sandbox Code Playgroud)
检索您的Flash消息.示例:
{% for flash_message in app.session.flashbag.get('success') %}
{{ flash_message|raw }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我认为这不能直接完成.但是你可以使用一些html和css来调整显示消息的位置.
喜欢:
在设置flash消息时:
$this->get('session')->getFlashBag()->add('notice', array('type' => 'success', 'title' => 'Done!', 'message' => 'OK! It is done!'));
Run Code Online (Sandbox Code Playgroud)
在twig文件中:
{% for msg in app.session.flashbag.get('notice') %}
<div class="alert alert-{{ msg.type }}">
<strong>{{ msg.title }}</strong><br/>{{ msg.message }}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)