在Twig HTML文件中,有一行非常正常:
{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }}
如何添加<strong></strong>
标记来包装用户名?
~
是Twig的字符串串联运算符。来自Twig的文档:
~:将所有操作数转换为字符串并连接它们
CCD_ 3将返回CCD_ 4(假定name
是'John'
)。
在您的情况下,这应该转化为类似于:
{{ 'layout.logged_in_as'|trans({'%username%': '<b>'~app.user.username~'</b>'}, 'FOSUserBundle') }}
或者:
{% set boldUsername = '<strong>' ~ app.user.username ~ '</strong>' %}
{{ 'layout.logged_in_as'|trans({'%username%': boldUsername}, 'FOSUserBundle') }}
如果html的自动转义有问题,您可能需要应用原始过滤器:
{% set boldUsername = '<strong>' ~ app.user.username ~ '</strong>' %}
{{ 'layout.logged_in_as'|trans({'%username%': boldUsername}, 'FOSUserBundle')|raw }}
最后,如果你喜欢用css制作样式(谁不喜欢),请添加<span>使用类而不是<strong>:
{% set usernameMarkup = '<span class="username">' ~ app.user.username ~ '</span>' %}
{{ 'layout.logged_in_as'|trans({'%username%': usernameMarkup}, 'FOSUserBundle')|raw }}
在css文件中:
.username { font-weight: bold; }
<strong>{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }}</strong>
{{ }}
分支括号之间的所有内容都将被计算为字符串,因此这相当于:
<strong>Username</strong>