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.
Je te conseil de regarder au niveau de la déclaration de ta liaison et le membre counterCache : http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#countercache-cache-your-count.
tu trouveras ton bonheur.
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.
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
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 ;) )