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 :

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();       
    }
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
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
        ));
 
    }
J'ai créé une vue menuCategory.html.twig :
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 %}
Et dans ma vue show, j'ai intégré :

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>
Je ne vois pas où j'ai bien pu me tromper pour afficher le contenu de la méthode getMenuCategory().

Si vous avez une idée, je suis preneuse.

Merci d'avance