1

twig を使用して、日付フィールドの選択フィールドの属性を設定したいと考えています。理想的には、次のようなコードが必要です。

{% setAttribute(myForm.myDate.day, {'attr': {'p-class': myForm.myDate.vars.id }}) %}
{% setAttribute(myForm.myDate.month, {'attr': {'p-class': myForm.myDate.vars.id }}) %}
{% setAttribute(myForm.myDate.year, {'attr': {'p-class': myForm.myDate.vars.id }}) %}
{{ form_row(myForm.myDate) }}

小枝/symfony2でこれを行うにはどうすればよいですか?

4

2 に答える 2

0

他のいくつかのオプション:

TWIG を使用して ID を親 div タグに配置します。

これは、使用している JS / CSS を微調整する必要があることを意味します。

{{ form_row(myForm.myDate, { 'attr': {'class': myForm.myDate.vars.id} } )

CSS 疑似セレクターを使用します。

出力のスタイルを設定したい (ID を入力している) ことはほとんどありませんが、スタイリングには常に CSS セレクターを使用できます。

<div class="some-selector">
    <select><option>YEAR</option></select>
    <select><option>MONTH</option></select>
    <select><option>DAY</option></select>
</div>

.some-selector select { color: green; }
.some-selector select + select { color: red; }
.some-selector select + second + select { color: blue; }

ここにフィドルがあります:http://jsfiddle.net/FFpJ8/

フォームのテーマ

Elnur が言うように、フォーム テーマも使用できます: http://symfony.com/doc/current/cookbook/form/form_customization.html デフォルトのテーマはhttps://github.com/symfony/symfony/blob/で確認できます。 master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig

したがって、必要に応じて ID を追加して、独自のテーマで date_widget をオーバーライドできます。

{% block date_widget %}
{% spaceless %}
    {% if widget == 'single_text' %}
        {{ block('form_widget_simple') }}
    {% else %}
        <div {{ block('widget_container_attributes') }}>
            {{ date_pattern|replace({
                '{{ year }}':  form_widget(form.year),
                '{{ month }}': form_widget(form.month),
                '{{ day }}':   form_widget(form.day),
            })|raw }}
        </div>
    {% endif %}
{% endspaceless %}
{% endblock date_widget %}

JS

ページのロード後に JS を使用してクラスを指定できますが、私はそうしません。

于 2013-09-02T23:14:24.733 に答える