$this->find('count') ???

Par elscorto, il y a 14 ans


Salut, ma question du jour va être toute bête mais je comprend pas le count de cake :P

En gros,

Dès que je veux faire un groupement, ça marche pas, je suis obligé de passer par un find('all') et je voudrais savoir si c'est normal ou si c'est moi qui ne comprends pas lol.

Ce qui est assez embêtant, c'est qu'avec un code pareil

debug($this->Comment->find('all',array(
    'fields'=>array('COUNT(*) AS total, Comment.post_id'),
    'conditions'=>array('Comment.approved'=>0),
    'group'=>'Comment.post_id'
)));
// on obtient ça, qui oblige à faire un traitement supplémentaire, 
//pour remettre le total au bon endroit, il n'y a pas un moyen que cake le fasse comme un grand !
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [total] => 1
                )
            [Comment] => Array
                (
                    [post_id] => 87
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [total] => 3
                )
            [Comment] => Array
                (
                    [post_id] => 110
                )
        )
)

Bon après c'est pas gênant mais si quelqu'un sait, ça serai cool de faire partager.

Merci.

4 réponses

elscorto, il y a 14 ans

J'ai déjà un CounterCache pour le total de commentaires par articles, et ça fonctionne très bien, le truc, c'est que le champ qui me permet de calculer le couterCache, qui est Comment.approved, peut valoir soit 1=>approuvé,0=>en attente,spam=>je te fais pas la traduction :),trash=>en corbeille.

Et là je souhaité récupérer le nombre de coms en attente groupé par article, et là le count, il fonctionne pas, obligé de passer par un find('all')

Mais merci quand même.

thqloz, il y a 14 ans

ah ok j'avais pas percuté du coup : $this->Comment->find('count',array('conditions'=>array('Comment.approved'=>0),'group'=>'Comment.post_id')); ne passe pas c'est bien ça ?
C'est juste pour être sûr (hein je fatigue) :x

elscorto, il y a 14 ans

pas de soucis lol, sinon ouais ça ne passe pas mais c'était juste pour savoir si c'était normal ou si c'est moi qui buggé(fatigue aussi ;) )