2016-04-11 10 views
1

を持っている場合はどのように小枝をチェックインするには:フォームフィールドが発生した場合、フォームフィールドは、反復経てラベル

{% for field in form %} 
{{ form_widget(field); }} 
{% endform %} 

それならば、それは(フィールドの入力タイプを囲むのdivブロックをカプセル化し、ラベルますラベルが付いています)。

私はラベルにこれを区切ると、ウィジェットにしたい:

 <div class="form-group">     
     {% if field.vars.label is not null %} 
      {{ form_label(field) }} 
     {% endif %} 
     {{ form_widget(field) }} 
     </div> 

しかしfield.vars.labelは常にnullです。私が条件なしで生成すると、ラベルは正しく表示されます。

条件チェックのラベル値を取得するにはどうすればよいですか?

ありがとうございます。

の代わり:

+0

'label'が設定されていない場合は小枝がNAME''使用しています。ここでは

はform_div_layout.html.twigファイル(行2を参照)からコードスニペットです。したがって、あなたのチェックは '{field.vars.labelが空でなく、field.vars.nameが空ではない}}'のようになります。そして、それはあなたが達成しようとしているようなものも、[フォームのカスタマイズ](http://symfony.com/doc/current/cookbook/form/form_customization.html)の料理本で説明されています。 –

+0

あなたはそうです。問題は、すべてのフィールドに名前があることです。私はまだform_widgetがどのフィールドがラベルを持ち、どのフィールドがないかを決定する方法を知らない。 – Roland

答えて

1

変更されます自動的に無視されます。

{%- block form_label -%} 
    {% if label is not same as(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 -%} 
      {%- if label_format is not empty -%} 
       {% set label = label_format|replace({ 
        '%name%': name, 
        '%id%': id, 
       }) %} 
      {%- else -%} 
       {% set label = name|humanize %} 
      {%- endif -%} 
     {%- endif -%} 
     <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</label> 
    {%- endif -%} 
{%- endblock form_label -%} 
+0

これは私を妥協に導きます:私はformbuilderの変更から避けたいと思います。ありがとう、私はこの解決策を受け入れるべきです – Roland

0

フォーム変数のdocリファレンスによると、

をしてみfalseにラベルとform_label()小枝機能

{% if field.vars.label is not null %} 
+1

オブジェクト "Symfony \ Component \ Form \ FormView"のメソッド "label"が存在しない。それは結果です:( – Roland

+0

@Roland 'field.attr.label'でも試してみてください – Matteo

+0

オブジェクト" Symfony \ Component \ Form \ FormView "のメソッド" attr "は存在しません... – Roland