1

要将其集成到 Twig 中:

<label class="control-label" for="lastname">Last Name:</label>
<div class="controls">
    <input type="text" id="firstname" name="firstname">
    <span class="help-block">{{ form_errors(form.firstname) }}</span>
</div>

我使用了以下代码片段:

{{ form_label(form.firstname, null, {'label_attr': {'class': 'control-label'}}) }}
<div class="controls">
    {{ form_widget(form.firstname) }}
    <span class="help-block">{{ form_errors(form.firstname) }}</span>
</div>

一切正常。

但我的问题是...

是否可以在 Twig 中用 form_label 包装 form_widget?最终结果应类似于

<label class="radio" for="dn">
    <input type="radio" id="dn" name="spotlight" value="1"> Test 1
</label>
<label class="radio" for="gn">
    <input type="radio" id="gn" name="spotlight" value="1"> Test 2
</label>
<span class="help-block">Errors</span>

我可以使用其他任何东西form_labelform_widget获得相同的结果吗?

4

1 回答 1

1

您只能form_row()在一个文件中更改输出的显示:

{% form_theme form _self %}

{% block form_row %}
    <div class="form_row">
        {% if label is not sameas(false) %}
            {% if not compound %}
                {% set label_attr = label_attr|merge({'for': id}) %}
            {% endif %}
            {% if required %}
                {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
            {% endif %}
            {% if label is empty %}
                {% set label = name|humanize %}
            {% endif %}
            <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }}
        {% endif %}

        {{ form_widget(form) }}

        {% if label is not sameas(false) %}
            </label>
        {% endif %}

        {{ form_errors(form) }}
    </div>
{% endblock form_row %}

并显示您的字段:

{{ form_row(form.firstname) }}

现在<label>是在场前打开,在场后关闭。

我从默认主题中获取原始代码,并在 Twig > Method 1: Inside the same Template as the Form 中使用食谱条目Form Theming

如果您想将您的想法应用于您的所有字段,请考虑使用表单自定义来更改{{ form_row(....) }}所有捆绑包中的显示。

于 2013-10-23T22:48:44.333 回答