Php 如何在Symfony flash消息中使用HTML标记
使用Symfony 2.7时,我希望在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')); ...
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中的参数类型给出),那么即使在更新到新的补丁版本时,您也有可能破坏应用程序。