Twig - 将字符串数据附加到同一变量

时间:2012-11-20 18:43:39

标签: twig

如何将更多数据附加到Twig中的同一变量?例如,这就是我想在Twig中做的事情:

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

我已经发现~在Twig中将字符串附加在一起。当我尝试{% set data ~ 'foo' %}时,我在Twig中收到错误。

3 个答案:

答案 0 :(得分:22)

~运算符不执行赋值,这可能是导致错误的原因。

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

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

另请参阅:How to combine two string in twig?

答案 1 :(得分:0)

以树枝动态显示

{% 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 %}

答案 2 :(得分:0)

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

$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! #}

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