有人知道如何连接树枝中的字符串吗?我想做的事情是:

{{ concat('http://', app.request.host) }}

当前回答

你要找的操作符是Tilde(~),就像Alessandro说的,这里是在文档中:

~:将所有操作数转换为字符串并连接。{{“你好 " ~名字~ "!"}}将返回(假设名字是“John”)你好,John!。——http://twig.sensiolabs.org/doc/templates.html其他运营商

这里有一个例子在文档的其他地方:

{% set greeting = 'Hello' %}
{% set name = 'Fabien' %}

{{ greeting ~ name|lower }}   {# Hello fabien #}

{# use parenthesis to change precedence #}
{{ (greeting ~ name)|lower }} {# hello fabien #}

其他回答

{{ ['foo', 'bar'|capitalize]|join }}

正如你所看到的,这与过滤器和函数一起工作,而不需要在单独的行上使用set。

“{{…”-分隔符也可以在字符串中使用:

"http://{{ app.request.host }}"

在Symfony中,您可以将此用于协议和主机:

{{ app.request.schemeAndHttpHost }}

尽管@alessandro1997给出了一个关于串联的完美答案。

在这种情况下,你想输出纯文本和一个变量,你可以这样做:

http://{{ app.request.host }}

如果你想连接一些变量,alessandro1997的解决方案会更好。

混合字符串,变量和翻译,我简单地做以下:

    {% set add_link = '
    <a class="btn btn-xs btn-icon-only" 
       title="' ~ 'string.to_be_translated'|trans ~ '" 
       href="' ~ path('acme_myBundle_link',{'link':link.id})  ~ '">
    </a>
    ' %}

尽管所有的东西都混在一起了,但它却像魔法一样有效。