2011-09-07 13 views
7

Mam rozszerzenie tego pytania: How to deal with Form Collection on Symfony2 Beta? - Mój projekt jest podobny, ale obiekty są zagnieżdżone głębiej. Mam artykuły, które mają jeden lub więcej elementów treści, z których każdy zawiera jeden lub więcej nośników. Model i Kontrolery działają do tej pory dobrze, ale nie wiem, jak poprawnie reprezentować zagnieżdżenie w moim szablonie. Form/ContentType.php wygląda wszystko w porządku:Jak obsługiwać wiele zagnieżdżonych kolekcji formularzy w Symfony 2.0?

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 
      )) 
     ; 
    } 

i jak dotąd forma, szablon do tworzenia (lub edycji) Dodaje się artykuł wygląda następująco (prawie waniliowym auto generowane szablonu):

... 
<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> 
... 

Jak uzyskać dostęp do każdej zawartości mediów, aby były poprawnie powiązane?

Odpowiedz

2

iterację mediów Wszelkie treści w:

<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

Dziękuję za odpowiedź! Właściwie już tam byłem, ale nie jestem całkiem pewien, w jaki sposób mogę czysto i dynamicznie dodawać lub usuwać elementy treści i nośniki przy użyciu generowanych prototypów pól formularza. Moim dotychczasowym rozwiązaniem jest dodanie n pustych elementów treści, z których każda zawiera m puste elementy multimedialne. Ogranicza to liczbę treści i mediów, które mogę dodać. Wolę używać wbudowanego prototypowania do dynamicznego dodawania elementów treści, ale nie wiem jak dynamicznie dodawać powiązane media. –

-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

Czy chcesz dodać komentarze do kodu, aby było bardziej zrozumiałe i zrozumiałe? – Yaroslav

Powiązane problemy