cakephp somme() sur un seul champ
J'ai cherché haut et bas sur la façon de simplement obtenir un total d'un champ appelé de points. J'ai juste besoin d'un total de figure, mais le mieux que je puisse obtenir une liste d'enregistrements de la table de Points avec les enregistrements associés de la part des Membres.
$totalPoints = $this->Member->Point->find('all', array(
array('fields' => array('sum(Point.points) AS Point.ctotal'))));
Quelle erreur avez-vous?
Et quelle version de cakephp? Vous devez vous toujours parler de la version que vous utilisez
Et quelle version de cakephp? Vous devez vous toujours parler de la version que vous utilisez
OriginalL'auteur Keith Power | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Pourquoi pas à l'aide de champs virtuels comme documenté et suggéré par les docs?
http://book.cakephp.org/2.0/en/models/virtual-fields.html
C'est beaucoup plus propre.
Noter également le double de la matrice de vous y avez dans votre tableau $options (
...find('all', array(array(...
). Et comment j'ai utilisé un seul plat/matrice.C'est la raison pour laquelle votre SOMME() appel en tant que champs ne fonctionne pas.
Je l'ai affiné la réponse. Merci.
Merci pour l'aide. J'ai une bien meilleure compréhension maintenant des champs virtuels. Peu plus, alors j'ai pensé
OriginalL'auteur mark
marque de la réponse ci-dessus est droite. Je tiens juste à ajouter que vous pouvez faire ceci:
$totalPoints
sera avoir ceci:Yep, je suis d'accord avec vous @mark
que pour la réponse, quand j'ai utilisé le code ci-dessus, j'ai dû utiliser $redeemedTotal[0][0]['Point__redeemedTotal'] dans la vue. Où que l'autre exemple, j'utilise $redeemedTotal[0]['Point']['Point__redeemedTotal'] est qu'il manque quelque chose? J'aimerais avoir votre solution à l'aide de $totalPoints['Point']['ctotal"] comme il est plus facile de lire dans la vue.
a travaillé pour moi car il m'a permis de mettre une condition à la volée
OriginalL'auteur Thorpe Obazee
Un autre moyen propre sans la sortie d'un tableau
OriginalL'auteur ISEVA