如何在symfony 2中在同一模板中呈现具有不同主题的表单
我想在Symfony中自定义表单渲染。我检查了,发现可以使用如何在symfony 2中在同一模板中呈现具有不同主题的表单,symfony,twig,symfony-forms,Symfony,Twig,Symfony Forms,我想在Symfony中自定义表单渲染。我检查了,发现可以使用{{form_theme}}标记设置渲染主题。如果在同一时间只存在一个表单,则此方法非常有效,但如果在同一模板中有多个表单,则此方法不起作用 myindex.html.twig {% extends 'base.html.twig' %} {% block body %} <h1>Hello Form 1</h1> {% form_theme form1 'bootstrap_3_layout.html.twi
{{form_theme}}
标记设置渲染主题。如果在同一时间只存在一个表单,则此方法非常有效,但如果在同一模板中有多个表单,则此方法不起作用
myindex.html.twig
{% extends 'base.html.twig' %}
{% block body %}
<h1>Hello Form 1</h1>
{% form_theme form1 'bootstrap_3_layout.html.twig' %}
{{ form_start( form1 ) }}
{{ form_end( form1 ) }}
<h1>Hello Form 2</h1>
{% form_theme form2 'bootstrap_3_horizontal_layout.html.twig' %}
{{ form_start( form2 ) }}
{{ form_end( form2 ) }}
{% endblock %}
{%extends'base.html.twig%}
{%block body%}
你好,表格一
{%form_主题form1'bootstrap_3_layout.html.twig%}
{{form_start(form1)}}
{{form_end(form1)}}
你好,表格二
{%form_主题form2'bootstrap_3_horizontal_layout.html.twig%}
{{form_start(form2)}}
{{form_end(form2)}}
{%endblock%}
如您所见,有两个表单变量,我希望form1
使用'bootstrap\u layout.html.twig'
和form2
使用'bootstrap\u horizontal\u layout.html.twig'
呈现。我不知道细枝的内部结构,但我认为主题覆盖了它们的块定义
结果是这样的
因此,我的问题是,我如何能够在不相互干扰的情况下呈现具有给定主题的形式。有没有办法在单独的干净细枝过程中渲染窗体
我尝试了一个带有自定义函数的Twig扩展,但该函数似乎使用了相同的Twig_环境。我还尝试了一个带有{%render}%的子请求,但这也不起作用。Twig solution
如果只想对表单使用水平
类,可以将其添加到表单\u start()
:
默认形式
电子邮件地址
密码
表格一
电子邮件地址
密码
表格二
电子邮件地址
密码
您的代码在我的测试中运行良好。
您可能正在发送导致问题的form1和form2的相同表单类型。如果您发送两种不同的表单类型,它应该可以工作 你已经尝试过这个方法了吗?这和我在上面代码中做的不一样吗??
{% extends 'base.html.twig' %}
{% block body %}
<h1>Hello Form 1</h1>
{% form_theme form1 'bootstrap_3_layout.html.twig' %}
{{ form_start( form1 ) }}
{{ form_end( form1 ) }}
<h1>Hello Form 2</h1>
{% form_theme form2 'bootstrap_3_horizontal_layout.html.twig' %}
{{ form_start(form2, {'class': 'horizontal', 'attr': {'class': 'horizontal'}}) }}
{{ form_end( form2 ) }}
{% endblock %}