Faire un count des commentaires avec Doctrine

03 12 2016

12 commentaires

Faire un count des commentaires avec Doctrine

Pour compter et afficher le nombre de commentaires postés sur son blog Symfony, il existe 2 solutions possibles:

  • faire un count dans un querybuilder sur l'entité Commentaires avec Doctrine
  • utiliser les relations et le filtre length de Twig

 

1ère méthode : Count avec querybuilder

Nous allons tout d'abord expliquer comment afficher le nombre de commentaires en utilisant un count dans une requête de querybuilder.

Nous allons utiliser cette méthode sur la page voir.html.twig (la page de l'article qui s'affiche après avoir cliqué sur le lien du titre) car nous récupérons le paramètre de l'article en nous rendant sur cette page, ce qui permettra de passer ce paramètre dans notre querybuilder.

Dans notre contrôleur voirAction(Article $article), on récupère donc l'entité Commentaire et on lui applique le querybuilder:

$commentaireNombre=$em->getRepository

("BlogBundle:Commentaires")

->commentaireByArticle($article);

On passe $commentaireNombre à la vue.

Et dans le repository de Commentaires, on créer le querybuilder :

    public function commentaireByArticle($article)
    {
        $qb = $this->createQueryBuilder('c')
                   ->select('COUNT(c)')
                   ->where('c.article= :article')
                   ->setParameter('article', $article);
        return $qb->getQuery()->getSingleScalarResult();        
    }

Ici, on eut utiliser la méthode getSingleScalarResult() au lieu d'un simple getResult() car on ne récupère qu'un résultat à la fois.

Puis dans le template voir.html.twig, on utilise la ligne suivante pour afficher "commentaire sans "s" quand il y en a qu'un seul et afficher "commentaires avec un "s" quand il y en a plusieurs:

{% if commentaireNombre ==1 %} {{ commentaireNombre }} commentaire {% elseif commentaireNombre > 1 %} {{ commentaireNombre }} commentaires{% endif%}

 

2ème méthode : les relations et le filtre length

Cette méthode est la plus simple

Pour afficher le nombre de commentaires dans les autres pages du blog, nous ne disposons pas du paramètre $article, c'est pourquoi nous allons utiliser les relations directement dans les templates avec un filtre twig.

Pour accéder aux commentaires nous pouvons simplement utiliser les relations car commentaires est un attribut de article.

Ainsi dans nos templates nous comptons le nombre de commentaires par article simplement en écrivant:

{{ article.commentaires | length }}

Ou length est le filtre Twig qui compte le nombre d'entrées.

Ainsi nous pouvons écrire dans les templates :

{% if article.commentaires|length ==1 %} {{ article.commentaires|length }} commentaire {% elseif article.commentaires|length > 1 %} {{ article.commentaires|length }} commentaires{% endif%}


 catégorie: Doctrine


Commentaires

xbkfrfvyf posté le 15/02/2023 à 09:29

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
xbkfrfvyf http://www.gl1odv8lv879y1fc5147b185y3yi8x2ss.org/
[url=http://www.gl1odv8lv879y1fc5147b185y3yi8x2ss.org/]uxbkfrfvyf[/url]
<a href="http://www.gl1odv8lv879y1fc5147b185y3yi8x2ss.org/">axbkfrfvyf</a>


lkklefsvn posté le 18/02/2023 à 09:30

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
<a href="http://www.g12c4fc392y77u6oc255b05qb54hnjejs.org/">alkklefsvn</a>
lkklefsvn http://www.g12c4fc392y77u6oc255b05qb54hnjejs.org/
[url=http://www.g12c4fc392y77u6oc255b05qb54hnjejs.org/]ulkklefsvn[/url]


xtextcdl posté le 21/02/2023 à 15:23

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
[url=http://www.g4yt4w51j3klzzc8s7c9732w2nw6812ps.org/]uxtextcdl[/url]
xtextcdl http://www.g4yt4w51j3klzzc8s7c9732w2nw6812ps.org/
<a href="http://www.g4yt4w51j3klzzc8s7c9732w2nw6812ps.org/">axtextcdl</a>


kyvzpjvzs posté le 21/02/2023 à 18:34

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
<a href="http://www.gsf77v98fj45347398q7r19l7ulfpwups.org/">akyvzpjvzs</a>
[url=http://www.gsf77v98fj45347398q7r19l7ulfpwups.org/]ukyvzpjvzs[/url]
kyvzpjvzs http://www.gsf77v98fj45347398q7r19l7ulfpwups.org/


ossdlhgty posté le 22/02/2023 à 08:56

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
ossdlhgty http://www.g5zwbrqxr8en294b0g9m18mk454275i3s.org/
<a href="http://www.g5zwbrqxr8en294b0g9m18mk454275i3s.org/">aossdlhgty</a>
[url=http://www.g5zwbrqxr8en294b0g9m18mk454275i3s.org/]uossdlhgty[/url]


btqilyifwp posté le 02/03/2023 à 05:59

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
<a href="http://www.glu22w0da11150t48tn6k00jrzn2i7a4s.org/">abtqilyifwp</a>
btqilyifwp http://www.glu22w0da11150t48tn6k00jrzn2i7a4s.org/
[url=http://www.glu22w0da11150t48tn6k00jrzn2i7a4s.org/]ubtqilyifwp[/url]


stexksepk posté le 08/03/2023 à 03:25

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
<a href="http://www.gu75a0pb60mt9oi3jw184316r04m6jies.org/">astexksepk</a>
[url=http://www.gu75a0pb60mt9oi3jw184316r04m6jies.org/]ustexksepk[/url]
stexksepk http://www.gu75a0pb60mt9oi3jw184316r04m6jies.org/


btbllqsok posté le 19/03/2023 à 20:48

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
<a href="http://www.g416x2y0vf67f9h8l3500fsy0k7rce3os.org/">abtbllqsok</a>
[url=http://www.g416x2y0vf67f9h8l3500fsy0k7rce3os.org/]ubtbllqsok[/url]
btbllqsok http://www.g416x2y0vf67f9h8l3500fsy0k7rce3os.org/


flxixbkoqh posté le 22/03/2023 à 23:51

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
[url=http://www.g4dd059l8756uobg25e9k5g4ir6sk88es.org/]uflxixbkoqh[/url]
flxixbkoqh http://www.g4dd059l8756uobg25e9k5g4ir6sk88es.org/
<a href="http://www.g4dd059l8756uobg25e9k5g4ir6sk88es.org/">aflxixbkoqh</a>


vxyywxqkkb posté le 28/03/2023 à 10:55

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
vxyywxqkkb http://www.grf2wg4v71969i7ea6f9rgbvc06246v4s.org/
<a href="http://www.grf2wg4v71969i7ea6f9rgbvc06246v4s.org/">avxyywxqkkb</a>
[url=http://www.grf2wg4v71969i7ea6f9rgbvc06246v4s.org/]uvxyywxqkkb[/url]


qeekwbneze posté le 05/04/2023 à 17:29

Faire un count des commentaires avec Doctrine - Web-City.fr | Blog Symfony3
[url=http://www.g2lkwag06v6029fzad2521m006e3ybe9s.org/]uqeekwbneze[/url]
qeekwbneze http://www.g2lkwag06v6029fzad2521m006e3ybe9s.org/
<a href="http://www.g2lkwag06v6029fzad2521m006e3ybe9s.org/">aqeekwbneze</a>


Exhaurn posté le 06/04/2023 à 07:52

If Magnesium Turbovit Grageas containing products must be used with calcitriol, serum Magnesium Turbovit Grageas concentrations should be monitored closely <a href=https://buycialis.homes>canadian pharmacy cialis</a>



Laisser un commentaire