在Symfony2 Twitch express中添加CSS


Add CSS in Symfony2 twig express

在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>