3

フォームをレンダリングしたい。フィールド行の HTML は次のようになります。

<li class="text">
  <label for="fieldname">
  <div>
    <input type="text" ... />
  </div>
</li>

フィールド タイプがテキストの場合、li.class は同じでなければなりません。

field_row ブロックを上書きします。

{% block field_row %}
{% spaceless %}
    <li class="text">
        {{ form_label(form, label|default(null)) }}
        {{ form_errors(form) }}
        {{ form_widget(form) }}
    </li>
{% endspaceless %}
{% endblock field_row %}

しかし、クラス値を置き換える方法は?

4

2 に答える 2

0

パブリックメンバーをFormTypeクラス(存在する場合...)にアタッチして、twigテンプレートから呼び出すことができます。

たぶん、フォームの属性配列は小枝テンプレートでアクセスできます...

class YourType extends AbstractType
{
    public $class = 'text';

    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('fieldname');
    }
    //...
}

{% block field_row %}
{% spaceless %}
    <li class="{{ form.class }}">
        {{ form_label(form, label|default(null)) }}
        {{ form_errors(form) }}
        {{ form_widget(form) }}
    </li>
{% endspaceless %}
{% endblock field_row %}
于 2011-09-07T09:37:37.970 に答える