Twitter bootstrap 使用引导在Symfony表单标签和小部件之间放置内容

Twitter bootstrap 使用引导在Symfony表单标签和小部件之间放置内容,twitter-bootstrap,symfony,symfony-forms,Twitter Bootstrap,Symfony,Symfony Forms,我希望能够在表单标签和表单小部件之间放置一个或两个小图标 我想得到的是可以在上面的“方法”字段中看到的内容,该字段使用以下方式渲染: {{ form_row(formProjectDetail.approach) }} 但后来我修改了图像,向您展示了我想要的“?”(实际上那里什么都没有;)) 我试着把标签和小部件分开 {{ form_label(formProjectDetail.name) }} <a data-toggle="modal" href="#modalHelpProje

我希望能够在表单标签和表单小部件之间放置一个或两个小图标

我想得到的是可以在上面的“方法”字段中看到的内容,该字段使用以下方式渲染:

{{ form_row(formProjectDetail.approach) }}
但后来我修改了图像,向您展示了我想要的“?”(实际上那里什么都没有;))

我试着把标签和小部件分开

{{ form_label(formProjectDetail.name) }}
<a data-toggle="modal" href="#modalHelpProjectDetailName"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></a>
{{ form_widget(formProjectDetail.name) }}
我只有两个问题:第一个问题相对较小,现在我的表格被翻转了:

我肯定我错过了一些非常基本的东西

另一个比较复杂。在某些情况下,“我的字段”不是普通字段,而是数组集合的最后一个元素。要呈现它,我需要:

{{ form_widget(form.scopesHistory|last) }}
注意,我只指定了小部件,就好像我还呈现了标签一样,它呈现了数组集合元素的数组索引[0,1,2…],该数组集合元素是最后一个

如何将myurl参数指定为这些元素之一的参数

要素将是公差,它具有多个领域风险等

编辑3

通过直接呈现行而不是小部件,解决了两个问题中最棘手的一个:

{{ form_row((formProjectDetail.scopesHistory|last).scope, {'label_attr': {'class': 'history'}, 'myurl':'#modalHistoryProjectDetailScope'}) }}
仍然需要弄清楚如何不让它翻转;)

您需要创建一个标签块,在该块中,您将使用所需的代码覆盖标签块,并保留所有其余部分不变:

{% block form_label -%}
{% spaceless %}
    {% if label is sameas(false) %}
        <div class="{{ block('form_label_class') }}"></div>
    {% else %}
        {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ' ~ block('form_label_class'))|trim}) %}
        <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }} </label>
    {% endif %}
{% endspaceless %}
{%- endblock form_label %}

你应该试试你自己的形式主题。。。这正是我不想触及的…有没有办法只覆盖标签以动态地包含我需要的内容?您可以只覆盖主题中的标签块,而保留所有其余部分不变。请查看我编辑的问题。我对代码的这一部分有点不知所措…代码似乎还可以,您是否遇到任何问题?有什么奇怪的输出或错误吗?好吧,我已经很清楚了…问题是我不知道那部分代码到底做了什么,所以我不知道重写什么以及如何重写。我甚至尝试在代码中到处放置“bla-bla”,但它总是将其放置在标签之外(但在小部件之前)。尝试了一些尝试错误,但没有成功…:(我接受了答案,就好像我把某个东西(例如时钟)放在“”之前一样,直接以原始形式_div_layout.html.twig呈现:现在我正试图按照此处的说明覆盖该部分,但它忽略了我。)(我试着把它放在同一个小树枝上并创建一个新模板,也试着把模板放在“app/Resources/views/Form”或“src/AppBundle/Resources/views/Form/”:(即使我解决了这个问题,仍然存在一个问题:在某些情况下它必须放时钟,而在另一些情况下则不能,所以当我渲染行时,我需要以某种方式告诉它。)“使用时钟渲染”,我认为可以通过将“clock”类指定给行并执行类似于required的星号之类的操作来完成,但是我需要传递到该时钟的特定链接(它链接到与该字段相关的模式),而不仅仅是显示它。我不知道如何做:(您应该将URL附加到字段的自定义属性,如
data label URL=“URL/Taht/You/need.html”
。您可以使用表单类型中的
attr
字段为文件设置任何自定义属性。我们就快到了!非常感谢您的帮助。请参阅我编辑的(2)问题
{{ form_widget(form.scopesHistory|last) }}
{{ form_row((formProjectDetail.scopesHistory|last).scope, {'label_attr': {'class': 'history'}, 'myurl':'#modalHistoryProjectDetailScope'}) }}
{% block form_label -%}
{% spaceless %}
    {% if label is sameas(false) %}
        <div class="{{ block('form_label_class') }}"></div>
    {% else %}
        {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ' ~ block('form_label_class'))|trim}) %}
        <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }} </label>
    {% endif %}
{% endspaceless %}
{%- endblock form_label %}
{% form_theme form 'form/fields.html.twig' %}