Bonjour, voila mon souci, je veux que l'utilisateur quand il regarde la liste des articles que j'ai écrite voir le nombre de commentaire lier à cet article. Donc naturellement je me tourne sur le find('count') de cakephp pour qu'il me calcule le nombre de commentaire pour chaque article mais au lieu de sa il me compte tous les commentaires sans distinction des articles ce qui veut dire que chaque article à le même nombre de commentaire ce qui n'est pas le cas.

public $uses = array('Post', 'Comment');
public function index(){
        $allPost = $this->paginate('Post');
        if ($this->request->is('requested')) {
            return $allPost;
        } else {
            $this->set('allPost', $allPost);
        }
        $nbreComment = $this->Post->Comment->find('count', array(
            'fields' => 'Comment.id',
            )
        );
        $this->set('nbreComment', $nbreComment);
    }

Merci de votre aide à créer ce find('count').

3 réponses


Ch0c4
Auteur
Réponse acceptée

Bon j'ai trouvé quelque chose de pas très catholique mais qui marche, en gros je compte le nombre commentaire dans ma page index.

<?php foreach ($allPost as $k => $v): ?>
            <?php 
                if(!$v'Comment']){
                    $nbreComment = 0;
                } else{
                    $i = 0;
                    while(@$v'Comment']$i]){
                        $i = $i + 1;
                    }
                    $nbreComment = $i;
                }
             ?>

$nbreComment est le nombre de commentaire.

Salut tu peux aussi voir le CounterCache ça résoudrai tout tes soucis ^^

Salut, en effet j’avais le même soucis que toi pour le find('count') et j'ai résolu ce problème en utilisant le CounterCache.