Souci de find('count') pour ma table commentaire

Par Ch0c4, il y a 14 ans


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, il y a 14 ans

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.

elscorto, il y a 14 ans

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

zenkiai, il y a 14 ans

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.