Twig-добавить больше данных к той же переменной

как бы вы добавили больше данных к той же переменной в Twig? Например, это то, что я пытаюсь сделать в веточку:

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

я понял, что ~ добавление строк в Twig. Когда я пытаюсь {% set data ~ 'foo' %} Я получаю ошибку в Twig.

3 ответов


на ~ оператор не выполняет задание, которое является вероятной причиной ошибки.

вместо этого вам нужно назначить добавленную строку обратно переменной:

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

Читайте также: как объединить две строки в Twig?


отображение динамически в 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 %}

вы также можете определить пользовательский фильтр, как жидкости |append фильтр в вашем экземпляре Twig, который делает то же самое.

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

IMHO я нахожу приведенный выше образец более интуитивным, чем ~ combinator, особенно при работе с общей кодовой базой, где люди, новые для синтаксиса, могут немного перепутаться.