2011-09-07 12 views
7

मुझे इस प्रश्न का विस्तार मिला है: How to deal with Form Collection on Symfony2 Beta? - मेरी परियोजना समान है, लेकिन वस्तुओं को गहरा घोंसला है। मेरे पास लेख हैं जिनमें एक या अधिक सामग्री तत्व हैं, जिनमें से प्रत्येक में एक या अधिक मीडिया शामिल हैं। मॉडल और नियंत्रक अब तक ठीक काम कर रहे हैं, लेकिन मुझे नहीं पता कि मेरे टेम्पलेट में घोंसले का सही ढंग से प्रतिनिधित्व कैसे किया जाए।सिम्फनी 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 
      )) 
     ; 
    } 

और अब तक, बनाने (या संपादन) एक अनुच्छेद यह (लगभग वेनिला स्वत: जनरेट टेम्पलेट) की तरह दिखता है के लिए प्रपत्र टेम्पलेट:

... 
<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> 
... 
फॉर्म/ContentType.php सब ठीक लग रहा है

मैं प्रत्येक सामग्री के मीडिया तक कैसे पहुंच सकता हूं ताकि वे ठीक से जुड़े हो जाएं?

उत्तर

2

सभी सामग्री के मीडिया के माध्यम से दोहराएं:

<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

आपके उत्तर के लिए धन्यवाद! दरअसल, मैं पहले से ही वहां रहा हूं, लेकिन मैं पूरी तरह स्पष्ट नहीं हूं कि जेनरेट फॉर्म-फील्ड प्रोटोटाइप का उपयोग करके मैं सामग्री तत्वों और मीडिया को कैसे साफ़ और गतिशील रूप से जोड़ या हटा सकता हूं। मेरा समाधान अब तक खाली सामग्री तत्वों को जोड़ना है, जिनमें से प्रत्येक में खाली मीडिया तत्व हैं। यह सामग्री और मीडिया की संख्या को बाधित करता है जो मैं जोड़ सकता हूं। मैं सामग्री तत्वों को गतिशील रूप से जोड़ने के लिए अंतर्निहित प्रोटोटाइप का उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे संबंधित मीडिया को गतिशील रूप से जोड़ना है। –

-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

अपने कोड में कुछ टिप्पणियां जोड़ने की देखभाल करें तो यह अधिक स्पष्ट और समझदार है? – Yaroslav

संबंधित मुद्दे