2011-09-07 11 views
7

Bu soru için bir uzantı var: How to deal with Form Collection on Symfony2 Beta? - Projem benzer, ancak nesneler daha derin bir iç içe. Her biri bir veya daha fazla Medya içeren bir veya daha fazla İçerik öğesine sahip makalelerim var. Model ve Kontrolörler şu ana kadar gayet iyi çalışıyor, ancak şablonumdaki yuvalamayı doğru şekilde nasıl temsil edeceğimi bilmiyorum.Symfony 2.0'da çoklu iç içe geçmiş Form Koleksiyonlar nasıl kullanılır?

class ContentType extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('headline') 
      ->add('text') 
      ->add('medias', 'collection', array(
       'type'  => new MediaType(), 
       'allow_add' => true 
      )) 
     ; 
    } 

Ve şimdiye kadar, bir madde bu (neredeyse vanilya otomatik oluşturulan şablona) benziyor oluşturarak (veya düzenleme) için form şablonu:

... 
<form action="{{ path('article_create') }}" method="post" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 

    {% for content in form.contents %} 
     {{ form_widget(content) }} 
    {% endfor %} 

    <p> 
     <button type="submit">Create</button> 
    </p> 
</form> 
... 
Formu/ContentType.php tamam görünüyor

Her bir İçeriğin Ortamına nasıl erişirim böylece düzgün şekilde ilişkilendirilirler? tüm içeriğin medya aracılığıyla

cevap

2

Bıkmadan:

<form action="{{ path('article_create') }}" method="post" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 

    {% for content in form.contents %} 
     {% for media in content.medias %} 
      {{ form_widget(media) }} 
     {% endfor %} 
    {% endfor %} 

    <p> 
     <button type="submit">Create</button> 
    </p> 
</form> 
+0

Cevabınız için teşekkür ederiz! Aslında zaten oradaydım, ancak oluşturulan form alanı prototiplerini kullanarak içerik öğelerini ve medyayı nasıl temizleyip dinamik olarak ekleyebileceğimi veya kaldırabildiğimi tamamen açıklayamıyorum. Şu ana kadar yaptığım çözüm, her biri boş medya öğelerini içeren n boş içerik öğeleri eklemektir. Bu, ekleyebileceğim içerik ve medya sayısını sınırlandırır. İçerik öğeleri dinamik olarak eklemek için yerleşik prototiplemeyi kullanmayı tercih ediyorum, ancak ilişkili medyayı dinamik olarak nasıl ekleyeceğimi bilmiyorum. –

-1
<form action="{{ path('article_create') }}" method="post" {{ form_enctype(form) }}> 
    {% for media in form.contents.medias.children %} 
     {{ form_widget(media) }} 
    {% endfor %} 
    {{ form_rest(form) }} 
    <p> 
     <button type="submit">Create</button> 
    </p> 
</form> 
+0

Kodunuza bazı yorumlar eklemek istersiniz, bu yüzden daha açık ve anlaşılır mıdır? – Yaroslav

İlgili konular