Ok Cerad was right with his comment and we have to use collection for this. It may sound like a nonsense at first but it kinda is right. It took me a while to get head around it.
So i had to create a ProductsType which is an arrayCollection and inserts each Product. (just like in documentation with Task and tags)
I used that:
$repository = $this->getDoctrine()->getRepository('ExampleBundle:Product');
$products = $repository->findAll();
$productCollection = new Products;
foreach ($products as $product) {
$productCollection->getProducts()->add($product);
}
$collection = $this->createForm(new ProductsType, $productCollection);
return $this->render('ExampleBundle:Default:index.html.twig', array(
'collection' => $collection->createView()
));
Then in twig i do:
<div class="products">
{% for product in collection.products %}
{{ form_row(product.id) }}
{{ form_row(product.name) }}
{{ form_row(product.description) }}
<br clear="all" />
{% endfor %}
</div>
Job done.
And even you can apply themes to each row by this:
{% block _productsType_products_entry_name_row %}
<div class="yourDivName">{{ block('form_widget') }}</div>
{% endblock %}
{% block _productsType_products_entry_description_row %}
<div class="yourDivDescription">{{ block('form_widget') }}</div>
{% endblock %}
Cool stuff!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…