0

問題があります。flag ico を使用して国を選択したいのですが、フォーム選択フィールドのカスタムテーマを作成する方法がわかりません。

テストフォームを作成しました:

->add('name', 'choice', array('choices' =>array('en' => 'England', 'de' => 'Deutshland')))

私の見解では、次に試します

{% block _send_name_widget %}
    <select>
        {% for f in form %}
            {{ loop.index }}
        {%endfor%}
    </select>
{% endblock%}

{{ form_widget(form.name) }}

そして、私のhtmlコードには次のものがあります:

<select>
 1
 2
</select>

<select>
</select>

理由を教えてください。パラメータを使用して1つの選択のみをレンダリングするにはどうすればよいですか?

4

2 に答える 2

1

選択テンプレートをオーバーライドします。

{% block choice_widget_options %}
{% spaceless %}
    {% for group_label, choice in choices %}
        {% if choice is iterable %}
            <optgroup label="{{ group_label|trans({}, translation_domain) }}">
                {% set options = choice %}
                {{ block('choice_widget_options') }}
            </optgroup>
        {% else %}
            <option value="{{ choice.value }}"{% if choice is selectedchoice(value) %} selected="selected"{% endif %}>
                  <img src="/images/flags/{{ choice.label }}.jpg" />
                  {{ choice.label|trans({}, translation_domain) }}
            </option>
        {% endif %}
    {% endfor %}
{% endspaceless %}
{% endblock choice_widget_options %}

Symfony2 ドキュメントのフォームテーマに関する詳細情報

于 2013-10-22T11:11:54.667 に答える