Bonjour,

j'aimerais ajouter le nombre de produits devant chaque categorie comme l'image ci-dessous est ce possible ?

6 réponses


Lartak
Réponse acceptée

Bonjour.

J'ai essayer le counterCache et ca na rien donne et d'ailleur voici l'instruction

Il ne te faut pas oublier de :

  • Ajouter le champ pour le counterCache
  • Modifier les enregistrements concernés (le counterCache s'incrémente lors de l'ajout/modification d'enregistrements)
  • Si tu as spécifié des champs précis dans ta requète SQL de récupération des données, vérifies qu'il ait bien le nom de ton champ concernant le counterCache, par exemple : product_count
  • Ne pas oublier également bien sûr, le champ lors de l'affichage sur ta vue .ctp.

Bref, donnes nous un peu plus de précisions.

Salut,

Il faudrait un peu plus d'info pour pouvoir t'aider, mais j'imagine que tes données viennent d'une bdd donc tu peux utiliser la fonction COUNT()+WHERE.

agencep
Auteur

@Grag : J'ai essayer le counterCache et ca na rien donne et d'ailleur voici l'instruction :

$cats = $this->Category->find('threaded', [
            'conditions' => [
                'online' => 1,
                'parent_id' => NULL
            ],
            'contain' => ['Ad']
        ]);
public $hasMany = [
        'Ad' => [
            'counterCache' => true,
            'conditions' => ['Ad.online' => 1]

        ]
    ];

@Forever justement je veux que ça soit dans une seule instruction SQL.

SELECT name, COUNT(id) FROM products WHERE category_id = 1

Tu devrais visiter un peu ce site, on dirait que tu as des lacunes en SQL. :)

agencep
Auteur

@Forever :: je ne veux pas utiliser du code SQL, avec le SQL je me débrouille très bien. je veux rester dans le native cakePhp.

agencep
Auteur

@Lartak: Merci pour ta réponse, tu m'as mis sur une bonne piste ...