2014-03-05 68 views
1

我的表單收集條目存在問題。symfony2表單主題覆蓋與循環的集合條目行?

例如我的表單類型。

// ProfileFormType 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('name') 
     ->add('emails', 'collection', array(
      'type' => new EmailType(), 
      'allow_add' => true, 
      'allow_delete' => true 
     )) 
    ; 
} 

這就是上述集合的電子郵件類型。

// EmailType 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('email', 'email') 
     ->add('publicAccess') 
    ; 
} 

現在,該集合條目行的表單主題。

{%- block _fos_user_profile_form_emails_entry_row %} 
    <div class="email form-group{% if form.email.vars.errors | length %} has-error{% endif %}"> 
     <div class="input-group col-xs-3"> 
      <span class="input-group-addon">{{ form_widget(form.publicAccess) }}</span> 
      {{ form_widget(form.email) }} 
      {#% if loop is defined %}{{ dump(loop) }}{% endif %#} 
      <span class="input-group-btn"><a class="btn btn-success"><span class="glyphicon glyphicon-plus glyphicon-xs"></span></a></span> 
     </div> 
     {{ form_errors(form.email) }} 
    </div> 
{% endblock -%} 

但問題是,我有沒有針對這些項目外環或其他東西......

我怎麼能檢查條目是集合的最後一個項目?

原因是我想添加「減號」按鈕,而不是最後一個的所有條目的「glypicon-plus」。

回答

0

,您可以訪問的最後一項:

{% if loop.last %} 
    {# your custom code for the last entry #} 
{% else %} 
    {# the others entries #} 
{% endif %} 

所以,你可以用它來選擇好按鈕:

{%- block _fos_user_profile_form_emails_entry_row %} 
    <div class="email form-group{% if form.email.vars.errors | length %} has-error{% endif %}"> 
     <div class="input-group col-xs-3"> 
      <span class="input-group-addon">{{ form_widget(form.publicAccess) }}</span> 
      {{ form_widget(form.email) }} 
      <span class="input-group-btn"><a class="btn btn-success"><span class="glyphicon {{ (loop.last) ? 'glypicon-plus' : 'glyphicon-minus' }} glyphicon-xs"></span></a></span> 
     </div> 
     {{ form_errors(form.email) }} 
    </div> 
{% endblock -%} 
+0

無遺憾。 「變量」循環「不存在」我認爲主題中沒有循環。 – PatrickB

0

我想你應該比較父的最後一個元素的條目。

像這樣:

{% if form == form.parent | last %} 
    it's the last 
{% else %} 
    it's not the last 
{% endif %}