我想在Symfony中动态呈现一个表单。我将带有元素名称元素的数组传递给render方法'formElements' => array('formelement1', 'formelement2')
。
我想如何使用模板中的元素名称来显示表单标签。
{% for elementName in elementNames %}
<div class="form-lable">
{{ form_label({{ elementName }}) }}
</div>
{% endfor %}
我收到以下例外:
哈希键必须是带引号的字符串,数字,名称或括在括号中的表达式(onBillBundle中值为“{”的意外标记“标点符号”:第17行的客户:new.html.twig
在没有{{ form(delete_form) }}
的情况下动态呈现表单是否不可行?
答案 0 :(得分:2)
未经测试...
{% for elementName in elementNames %}
<div class="form-lable">
{{ form_label(attribute(form, elementName)) }}
</div>
{% endfor %}
答案 1 :(得分:-1)
您不需要使用{{
和}}
在twig语句中包围变量。所以你的代码应该是:
{{ form_label(elementName) }}
但当然elementName
需要是 Form 对象而不是字符串。您可以在 Controller 中生成它们,如下所示:
public function testAction()
{
// ...
$form = $this->createFormBuilder()
->add('name', 'text');
return ['form' => $form->createView()];
}