À partir de Symfony 2.1 (cela peut également fonctionner pour la version 2.0 mais je ne suis pas sûr), pour appliquer un thème à une collection, vous devez procéder de la manière suivante :
Supposons que nous ayons une collection de produits (nous avons plusieurs entités Produit)
Contrôleur :
$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()
));
Votre thème peut ressembler à ceci :
{% block _productsType_products_entry_name_row %}
{{ block('form_widget') }}
{% endblock %}
{% block _productsType_products_entry_description_row %}
{{ block('form_widget') }}
{% endblock %}
Le truc est avec "entry" où Twig fera le travail pour vous d'appliquer les changements ci-dessus à chaque ligne et pour chaque champ que vous spécifiez
J'espère que cela vous aidera !