Vodokan
Vodokan

Reputation: 793

How to concatenate two Twig variables in a loop

I'm trying to create dynamically variable name so the result to be as the one below

{{ form_label(form.user_1) }}
 {{ form_label(form.user_2) }}
 {{ form_label(form.user_3) }}
 {{ form_label(form.user_4) }}

Here's what I tried so far

{%  for user in users %}
      {{ form_label(form.user~'_'~loop.index) }}
 {% endfor %}

but get

Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock() must be an instance of Symfony\Component\Form\FormView, string given

What I'm doing wrong?

Upvotes: 1

Views: 3210

Answers (1)

MeuhMeuh
MeuhMeuh

Reputation: 885

I think that you have to use the attribute() function.

If this doesn't work with the concatenation in the method parameter, try to concatenate it first in a variable like this :

{% set userIndex = 'user_' ~ loop.index %}

And then you should try this :

{{ form_label(attribute(form, userIndex)) }}

Upvotes: 5

Related Questions