Php 如何在Symfony flash消息中使用HTML标记

Php 如何在Symfony flash消息中使用HTML标记,php,html,symfony,twig,Php,Html,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')); ...

使用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>
类MyController扩展控制器{
公共函数someAction(请求$Request){
...
$this->addFlash('success',$tranlator->trans('some.success.msg',array(),'app');
...
}
}
//app.yml
一些:
成功:
msg:带有一些HTML的文本
这将创建一条闪光消息

Text with some <strong>HTML</strong> 
文本,带有一些HTML
而不是

带有一些HTML的文本


在我自己的Twig模板中,我将使用
raw
过滤器直接显示HTML代码,而不是转义版本。但是我怎样才能在
addFlash(…)
中达到同样的效果呢?

我不确定我是否真的理解你的问题。如果这不是您要问的问题,请说出来,我将删除此答案。
正如你在使用中所说的

检索您的flash消息。 例如:

{% for flash_message in app.session.flashbag.get('success') %}
        {{ flash_message|raw }}
{% endfor %}

我认为这不能直接做到。但是您可以使用一些html和css来调整显示消息的位置

比如:

在设置flash消息时:

$this->get('session')->getFlashBag()->add('notice', array('type' => 'success', 'title' => 'Done!', 'message' => 'OK! It is done!'));
{% for msg in app.session.flashbag.get('notice') %}
<div class="alert alert-{{ msg.type }}">
    <strong>{{ msg.title }}</strong><br/>{{ msg.message }}
</div>
{% endfor %}
并在细枝文件中:

$this->get('session')->getFlashBag()->add('notice', array('type' => 'success', 'title' => 'Done!', 'message' => 'OK! It is done!'));
{% for msg in app.session.flashbag.get('notice') %}
<div class="alert alert-{{ msg.type }}">
    <strong>{{ msg.title }}</strong><br/>{{ msg.message }}
</div>
{% endfor %}
{%用于app.session.flashbag.get('notice')%%中的消息
{{msg.title}
{{{msg.message} {%endfor%}
嗨!我发现,我使用的默认基本布局没有使用
raw
过滤器来显示消息。因此,我只是通过扩展旧的基本布局创建了一个新的基本布局,添加了
raw
过滤器,它就工作了。谢谢你的提示!我的答案是-1,因为
FlashBagInterface
明确指出
$message
应该是一个字符串。我喜欢这个解决方法,但实际上它是一个干净的黑客。对于负号没有问题:-)。我认为,如果你知道这个解决方案确实是一个黑客(正如它所要求的那样)并且达到了目的,那么你就把负数加进去,那将是一件好事。祝您好运。请注意,您提出的解决方案不在我们的BC承诺范围内。这意味着,如果您没有以接口声明可以使用的方式使用接口(即docblock中的参数类型给出),那么即使在更新到新的补丁版本时,您也有可能破坏应用程序。