Salut à tous !
Je suis entrain de développer un forum, je suis à l'étape ou je souhaite récupérer le nombre de topic par forum et de l'afficher.
Je procède comme ceci :
ForumController.php :
getCategorieAvecForums() :
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
23
24
25
26
27 <?php namespace Sds\ForumBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class ForumController extends Controller { public function indexAction() { $em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository('SdsForumBundle:Categorie'); $listeCategories = $repository->getCategorieAvecForums(); $em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository('SdsForumBundle:Forum'); $listeNbTopics = $repository->getNbTopicParForums(); return $this->render('SdsForumBundle:Forum:index.html.twig', array('listeCategories' => $listeCategories, 'listeNbTopics' => $listeNbTopics)); } }
getNbTopicParForums :
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
23
24
25
26
27 <?php namespace Sds\ForumBundle\Entity; use Doctrine\ORM\EntityRepository; /** * CategorieRepository * * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ class CategorieRepository extends EntityRepository { public function getCategorieAvecForums() { $qb = $this->createQueryBuilder('c') ->join('c.forums', 'f') ->addSelect('f') ->orderBy('c.ordre', 'ASC'); return $qb->getQuery() ->getArrayResult(); } }
Ma vue :
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
23
24
25 <?php namespace Sds\ForumBundle\Entity; use Doctrine\ORM\EntityRepository; /** * ForumRepository * * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ class ForumRepository extends EntityRepository { public function getNbTopicParForums() { $qb = $this->createQueryBuilder('f') ->join('f.topics', 't') ->addSelect('COUNT(t)') ->groupBy('f.id'); return $qb->getQuery() ->getScalarResult(); } }
Voici l'erreur qu'il en découle :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 {# src/Sds/ForumBundle/Resources/views/Forum/index.html.twig #} {% extends "SdsSiteBundle::layout.html.twig" %} {% block title %}Forum - {{ parent() }}{% endblock %} {% block sdssite_body %} <div id="forum"> {% for categories in listeCategories %} <div id="globalforum"> <div id="catforums"> <table class="categories"> <thead> <th style="text-align: left; width: 340px;"><a href="">{{ categories.nom }}</a></th> <th style="width: 80px;">SUJETS</th> <th style="width: 80px;">MESSAGES</th> <th style="text-align: center; width: 240px;">DERNIER MESSAGE</th> </thead> {% for forums in categories.forums %} <tbody class="forums"> <tr> <td> <a href="">{{ forums.name }}</a><br /> {{ forums.description }} </td> <td style="text-align: center;"> {% for nbtopic in listeNbTopics %} {{ nbtopic }} {% endfor %} </td> <td style="text-align: center;">test</td> <td style="text-align: center;">test</td> </tr> </tbody> {% endfor %} </table> </div> </div> {% endfor %} </div> {% endblock %}
Si quelqu'un aurait une idée ?An exception has been thrown during the rendering of a template ("Notice: Array to string conversion in /homepages/44/d319387792/htdocs/skydreamsoft/app/cache/dev/twig/56/72/ccd192858f95c3814baf804398e6.php line 88") in ::layout.html.twig at line 128.
Je vous remercie d'avance !
Partager