Bonjour Dominique,
Je travail sur un projet e-commerce de mode qui reste dans le même principe:
J'ai une entité 'categorie' (accessoire, vêtements, chaussure) qui est en relation OneToMany avec l'entité 'sous_categorie' (tee-shirt, jean, pantalon) qui a elle même une relation OneToMany avec l'entité 'Article' (qui va contenir : un nom, une descripiton).
Je vous donnne ci-joint le code à adpaté à votre projet :
la vue twig :
<div class="container">
<div class="panel panel-default">
{# j'affiche mes categories #}
{% for categories in categories %}
<div class="panel-heading">
<span class="text-primary"> ceci est une catégorie :</span>
{{ categories.name }}
</div>
{# j'affiche mes article #}
{% for categories in categories.getSousCategories %}
<div class="panel-body">
<span class="text-danger"> ceci est une sous-catégorie :</span> {{ categories.name }}
{# j'affiche mes article (bakground vert) #}
<div class="panel-footer" style="background-color: #00800066;">
{% for categories in categories.getArticles %}
ceci est un article :{{ categories.nom }}
<br>
{% endfor %}
</div>
</div>
{% endfor %}
<br><br><br>
{% endfor %}
</div>
</div>
le controller :
#[Route('/show/2', name: 'app_show')]
public function show_two(ArticlesRepository $articlesRepository, CategoriesRepository $categoriesRepository, SousCategoriesRepository $sousCategoriesRepository): Response
{
return $this->render('admin/show.html.twig', [
'articles' => $articlesRepository->findBy([], ['id' => 'asc']),
'categories' => $categoriesRepository->findBy([], ['name' => 'asc']),
'sous_categories' => $sousCategoriesRepository->findBy([], ['name' => 'asc']),
]);
}
j'espère avoir réussi à vous aider