2011-09-07 26 views
7

Tôi có một phần mở rộng cho câu hỏi này: How to deal with Form Collection on Symfony2 Beta? - Dự án của tôi là tương tự, nhưng các đối tượng được lồng sâu hơn. Tôi có các Bài viết có một hoặc nhiều phần tử Nội dung, mỗi phần tử chứa một hoặc nhiều Media. Mô hình và Bộ điều khiển đang hoạt động tốt cho đến nay, nhưng tôi không biết cách thể hiện đúng cách lồng nhau trong mẫu của tôi. Form/ContentType.php trông ổn thôi:Làm cách nào để xử lý nhiều Bộ sưu tập Biểu mẫu lồng nhau trong 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 
      )) 
     ; 
    } 

Và cho đến nay, hình thức mẫu để tạo (hoặc sửa đổi) một Điều trông như thế này (mẫu tự động tạo ra gần như vani):

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

Làm cách nào để truy cập vào từng Phương tiện của Nội dung để chúng được liên kết đúng cách?

Trả lời

2

Duyệt qua phương tiện truyền thông tất cả của nội dung:

<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

Cảm ơn bạn đã trả lời của bạn! Trên thực tế, tôi đã ở đó, nhưng tôi không hoàn toàn rõ ràng về cách tôi có thể tự động thêm hoặc xóa một cách tự động và xóa các phần tử nội dung và phương tiện bằng cách sử dụng các mẫu tạo mẫu trường đã tạo. Giải pháp của tôi cho đến nay là thêm n thành phần nội dung trống, mỗi phần tử chứa các phần tử phương tiện trống. Điều này hạn chế số lượng nội dung và phương tiện mà tôi có thể thêm vào. Tôi muốn sử dụng việc tạo mẫu dựng sẵn để tự động thêm các thành phần nội dung, nhưng tôi không biết cách tự động thêm phương tiện liên kết sau đó. –

-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

Bạn có thể thêm một số nhận xét vào mã của mình để rõ ràng hơn và không ổn định? – Yaroslav

Các vấn đề liên quan