Ответ 1
Оператор ~
не выполняет назначение, что является вероятной причиной ошибки.
Вместо этого вам нужно назначить добавленную строку обратно переменной:
{% set data = data ~ 'foo' %}
См. также: Как объединить две строки в twig?
Как бы вы добавили больше данных к одной и той же переменной в Twig? Например, это то, что я пытаюсь сделать в Twig:
var data = "foo";
data += 'bar';
Я понял, что ~
присоединяет строки вместе в Twig. Когда я пытаюсь {% set data ~ 'foo' %}
, я получаю сообщение об ошибке в Twig.
Оператор ~
не выполняет назначение, что является вероятной причиной ошибки.
Вместо этого вам нужно назначить добавленную строку обратно переменной:
{% set data = data ~ 'foo' %}
См. также: Как объединить две строки в 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 %}
Вы также можете определить собственный фильтр, например Liquid |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 Я считаю, что приведенный выше пример более интуитивно понятен, чем комбинатор ~
, особенно при работе над общей кодовой базой, где люди, не знакомые с синтаксисом, могут немного перепутаться.