16

How would you append more data to the same variable in Twig? For example, this is what I'm trying to do in Twig:

var data = "foo";
data += 'bar';

I have figured out that ~ appends strings together in Twig. When I try {% set data ~ 'foo' %} I get an error in Twig.

4

3 回答 3

28

~操作员不执行赋值,这可能是错误的原因。

相反,您需要将附加的字符串分配回变量:

{% set data = data ~ 'foo' %}

另请参阅:如何在树枝中组合两个字符串?

于 2012-11-20T19:02:54.147 回答
0

Displaying dynamically in twig

{% for Resp in test.TestRespuestasA %}        
    {% set name = "preg_A_" ~ Resp.id %}
    {% set name_aux = "preg_A_comentario" ~ Resp.id %}
    <li>{{ form_row(attribute(form, name)) }}</li>
{% endfor %}
于 2014-03-14T21:50:31.453 回答
0

您还可以|append在 Twig 实例中定义一个自定义过滤器,如 Liquid 的过滤器,它执行相同的操作。

$loader = new Twig_Loader_Filesystem('./path/to/views/dir');
$twig = new Twig_Environment($loader);

...
...

$twig->addFilter(new Twig_SimpleFilter('append', function($val, $append) {
    return $val . $append;
}));

产生以下标记:

{% set pants = 'I\'m wearing stretchy pants!' %}
{% set part2 = ' and they\'re friggin\' comfy!' %}
{% set pants = pants|append(part2) %}

{{ pants }}

{# result: I'm wearing stretchy pants! and they're friggin' comfy! #}

恕我直言,我发现上面的示例比~组合器更直观,特别是在处理共享代码库时,语法新手可能会有点混淆。

于 2017-08-25T06:06:05.463 回答