Forms Symfony 2表单中的全局表单属性

Forms Symfony 2表单中的全局表单属性,forms,symfony,Forms,Symfony,我用的是symfony2.4。我试图做的是在表单级别设置表单属性,每个小部件都可以访问这些属性 我有一个自定义表单主题,如果表单是水平或垂直布局,它可以呈现稍微不同的表单。我希望能够将{'horizontal':true}指定为表单上的属性,然后能够在读取每个小部件时读取它 可能吗?我想避免在每个小部件上都这样做 {{ form_row(form.person.province, {horizontal:true}) }} {{ form_row(form.person.postalCode,

我用的是symfony2.4。我试图做的是在表单级别设置表单属性,每个小部件都可以访问这些属性

我有一个自定义表单主题,如果表单是水平或垂直布局,它可以呈现稍微不同的表单。我希望能够将
{'horizontal':true}
指定为表单上的属性,然后能够在读取每个小部件时读取它

可能吗?我想避免在每个小部件上都这样做

{{ form_row(form.person.province, {horizontal:true}) }}
{{ form_row(form.person.postalCode, {horizontal:true}) }}
{{ form_row(form.person.phone, {horizontal:true}) }} 

你不能用你自己的方式实现吗

{% block form_row %}
  {% spaceless %}
  {% if horizontal|default(true) %} {# or something along these lines #}
    ...
  {% else %}
    ...
  {% endif %}
  {% endspaceless %}
{% endblock form_row %}

我有自己的形式主题,也做过类似的事情。我的问题是如何在呈现表单时设置horizontal=true,而不是在每个表单_行()上设置它call@Teddy它已经出现在我提供的答案“{%if horizontal | default(true)%}”中。如果没有提供,请在表单主题中使用默认过滤器设置horizontal的值。提供它只会覆盖默认值。也许我遗漏了什么。我的表单主题中已经有了它(请参见我的整个fields.html.twig:)。我的默认是错误的。按照你的方式,我仍然需要在垂直窗体的每一行上将水平覆盖为false。我只是想避免在每个表单行上说{horizontal:true},而是将其设置在表单级别本身,并能够从字段访问它{{form_小部件(form,{horizontal:horizontal}}{%endblock form_row%}