Bonjour à tous,
En tentant d'intégrer le contenu d'une méthode de controller dans un template, j'ai ce message d'erreur : "An exception has been thrown during the rendering of a template ("Unable to guess how to get a Doctrine instance from the request information for parameter "pageCategory".")."
Dans ma vue page.show, je souhaite afficher un menu reprenant les titres des pages d'une catégorie bien précises.
Dans mon pageRepository, j'ai créé cette méthode :
Dans mon controller, j'ai créé cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 /** * @param PageCategory $pageCategory * @return mixed */ public function findPagebyCategory(PageCategory $pageCategory) { $qb = $this->createQueryBuilder('p'); $qb->where('p.pageCategory = :pageCategory') ->setParameter('pageCategory', $pageCategory) ->orderBy('p.id', 'ASC'); return $qb ->getQuery() ->getResult(); }
J'ai créé une vue menuCategory.html.twig :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 /** * @param PageCategory $pageCategory * @return Response * @Template() */ public function getMenuCategory(PageCategory $pageCategory): Response { $this->getDoctrine()->getManager(); $listPages = $this->pageRepositoy->findPagebyCategory($pageCategory); foreach ($listPages as $page){ $page['slug']; $page['title']; } return $this->render('frontEnd/page/menuCategory.html.twig', array( 'listPages' => $listPages )); }
Et dans ma vue show, j'ai intégré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 {% for page in listPages %} <li> <a href="{{ path('page.show', {'slug' : page.slug}) }}">{{ page.title }}</a> </li> {% endfor %}
Je ne vois pas où j'ai bien pu me tromper pour afficher le contenu de la méthode getMenuCategory().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <div class="col-lg-4"> {{ render(controller('App\\Controller\\PageController::getMenuCategory')) }} </div>
Si vous avez une idée, je suis preneuse.
Merci d'avance
Partager