Twitter bootstrap 如何在Symfony2表单中使用TWIG引导模板块

Twitter bootstrap 如何在Symfony2表单中使用TWIG引导模板块,twitter-bootstrap,symfony,twig,Twitter Bootstrap,Symfony,Twig,我不理解如何使用bootstrap\u 3\u horizontal\u layout.html.twig中定义的块来定制表单 到目前为止,我做到了这一点,它的工作很好 {% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %} <div class="well"> {{ form_start(form) }} {{ form_errors(form) }} {{ form_row(for

我不理解如何使用bootstrap\u 3\u horizontal\u layout.html.twig中定义的块来定制表单

到目前为止,我做到了这一点,它的工作很好

{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}
<div class="well">
    {{ form_start(form) }}

    {{ form_errors(form) }}

    {{ form_row(form.title, {'label': 'Titre'}) }}

    {{ form_row(form.content, {'label': "Content"}) }}

 ...

    {{ form_rest(form) }}
    {{ form_end(form) }}
</div>

它不工作。

在第一个示例中调用的函数(
form\u start
form\u errors
等)是在细枝扩展()中定义的函数,使用定义的主题生成输出。因此,
bootstrap\u 3\u horizontal\u layout.html.twig
中定义的块由这些函数调用(它们是Symfony表单视图组件的扩展),您不能自己直接“调用”这些块

如果您试图自定义表单的输出,最简单的方法是创建您自己的表单主题,该主题扩展自基本主题:

{% extends 'bootstrap_3_horizontal_layout.html.twig' %}
{% block textarea_widget %}
    {# your code #}
{% endblock %}
这在中进行了描述


如果您试图直接调用小部件,最好更改传递给渲染器的表单字段的类型。中提供了不同的可用类型。您选择的类型定义了将从主题中呈现哪个块-因此,如果您将字段类型更改为
textarea
,则将呈现
textarea\u小部件
(首先是
textarea\u行
)。如果您需要对此进行概述,文档应该会帮助您。

您在第一个示例中调用的函数(
form\u start
form\u errors
等)是在细枝扩展()中定义的函数,它们使用定义的主题生成输出。因此,
bootstrap\u 3\u horizontal\u layout.html.twig
中定义的块由这些函数调用(它们是Symfony表单视图组件的扩展),您不能自己直接“调用”这些块

如果您试图自定义表单的输出,最简单的方法是创建您自己的表单主题,该主题扩展自基本主题:

{% extends 'bootstrap_3_horizontal_layout.html.twig' %}
{% block textarea_widget %}
    {# your code #}
{% endblock %}
这在中进行了描述


如果您试图直接调用小部件,最好更改传递给渲染器的表单字段的类型。中提供了不同的可用类型。您选择的类型定义了将从主题中呈现哪个块-因此,如果您将字段类型更改为
textarea
,则将呈现
textarea\u小部件
(首先是
textarea\u行
)。如果您需要这方面的概述,文档应该会帮助您。

多亏了John Noel,我找到了答案。 总结一下,如果有人想做同样的事情

在Symfony2表单中使用bootstrap3预先定义的布局

1-声明要使用的表单主题

在你的小枝模板中

{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}
或全局搜索/app/config/config.yml中的所有表单

# Twig Configuration
twig:
    form:
        #resources: ['bootstrap_3_layout.html.twig']
        resources: ['bootstrap_3_horizontal_layout.html.twig']
2-使用来显示您的表单

  • 形式
  • 表格开始
  • 表尾
  • 表格类型
  • 表单小部件
  • 表格错误
  • 表格标签
  • form_row
  • 休息室
3-必须在formbuilder中使用正确的格式(这是我缺少的部分)

例:使用bootstrap3小部件赚钱

在您的form.html.twig中

{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}

  {{ form_start(form) }}

...

    {{ form_row(form.price, {'label': "Price"}) }}

...

    {{ form_end(form) }}
在你的表格里

$builder->add('price', 'money');
我希望这可以帮助别人,因为这是我希望我找到的!
再次感谢约翰·诺埃尔

感谢约翰·诺埃尔,我找到了答案。 总结一下,如果有人想做同样的事情

在Symfony2表单中使用bootstrap3预先定义的布局

1-声明要使用的表单主题

在你的小枝模板中

{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}
或全局搜索/app/config/config.yml中的所有表单

# Twig Configuration
twig:
    form:
        #resources: ['bootstrap_3_layout.html.twig']
        resources: ['bootstrap_3_horizontal_layout.html.twig']
2-使用来显示您的表单

  • 形式
  • 表格开始
  • 表尾
  • 表格类型
  • 表单小部件
  • 表格错误
  • 表格标签
  • form_row
  • 休息室
3-必须在formbuilder中使用正确的格式(这是我缺少的部分)

例:使用bootstrap3小部件赚钱

在您的form.html.twig中

{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}

  {{ form_start(form) }}

...

    {{ form_row(form.price, {'label': "Price"}) }}

...

    {{ form_end(form) }}
在你的表格里

$builder->add('price', 'money');
我希望这可以帮助别人,因为这是我希望我找到的! 再次感谢约翰·诺埃尔