Bonjour,

Est ce possible de faire un counterCache avec une HABTM ?
J'ai la table "infopros" et la table "Metiers" et leur table de jointure "infopros_metiers"

La colomne infopro_count dans la table metiers

Dans le model : Infopro

public $hasAndBelongsToMany = [
    'Metier' => [
              'className' => 'Metier',
              'foreignKey' => 'infopro_id',
              'associationForeignKey' => 'metier_id',
              'unique' => true,
    ],
]

Dans le model : Metier => rien

dans quel model mettre le counterCache ?

Merci

1 réponse


Salut,
cette réponse est un peut être en retard :D il faut dire, cependant ça pourra aider d'autres personnes dans ce même cas de figure, et donc pour mettre un CounterCache dans une relation de type belongsToMany il faut mettre le CounterCache dans la table de liaison, par exemple pour les table Articles et Tags une troisième table ArticlesTags s'impose, et il suffit de mettre le CounterCache dans le fichier ArticlesTagsTable.php

$this->addBehavior('CounterCache', [
    'Tags' => ['article_count']
]);

et voila le tour est joué :)