В моем шаблоне Twig у меня есть FOR LOOP, который создает несколько таких форм:
{% for thing in things %} {% set form_id = 'myform_' ~ thing.Id %} {% set form_name = attribute(form, 'myform_' ~ thing.Id) %} {{ form_widget(form_id) }} {{ form_widget(form_name) }} {% endfor %}
Я хотел бы, чтобы это создавало следующее:
{{ form_widget(myform_1) }} {{ form_widget(myform_2) }}
…. и так далее.
Я оставил там 2 неудачных попытки ( form_id
и form_id
), чтобы никому не предлагать предлагать их в качестве возможных решений.
Обобщить; Мне нужно вставить динамически созданное значение ( myform_1, myform_2
) внутри
{{ form_widget() }}
То, что myform_1
и myform_2
просто являются переменными с объектом FormView, как вы определяете в своем контроллере. Я не знаю, может ли Twig разрешать вызов динамических переменных, хотя вы можете собирать эти объекты формы в массиве в контроллере, прежде чем перейти к просмотру. После этого шага вы можете просто перечислить этот массив. Он справится с проблемой, с которой вы столкнулись.
Не создавайте цикл в Twig: макет должен отображать только одну форму. Затем вы можете создавать формы в своем контроллере и отображать каждый из них.
См. Эту документацию в книге Symfony о том, как получить результат визуализированного шаблона. Вы можете объединить отдельные результаты рендеринга и вернуть ответ с полным контентом.