donc faudra changer pour ça cake à une norme comme en UML une relation plusieurs à plusieurs fait naître une classe d'association tu va devoir créer une table comme ceci
CREATE TABLE `follows_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`follow_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
après ça tu enlève le user_id
et pour le relationnel tu va créer un model nommé FollowUser.php
<?php
App::uses('AppModel', 'Model');
class FollowUser extends AppModel {
public $useTable = 'follows_users';
public $belongsTo = array(
'Follow',
'User' => array(
/**
* cela va te permettre d'avoir le nombre de followers pour chaque église
* ajoute en BDD un champ pour la table follows_users un champ follow_count de type int qui sera remplie automatiquement
*/
'counterCache' => 'follow_count '
)
);
public function afterDelete() {
parent::afterDelete();
$this->User->deleteAll(array(
'User.follow_count' => 0
));
}
}
maintenant si je suis un follower et que à partir d'une action j'veux suivre une église, coté controller ça sera
//on passe l'id du follower + l'id de l'église
public function follow($id = null,$idUser = null){
if(!empty($id) && !empty($idUser){
$this->FollowUser->create();
$this->save(array(
'id' => null, //pour être juste sûr de l'autoincrement
'follow_id' => $id,
'user_id' => $idUser
));
}
}
à partir de la table follows_users (classe d'association)
tu peut avoir les followers de chaque église
à partir de la table users tu peut avoir le nombre de followers pour chaque église via le champ follow_count
et là tout tes problèmes sont résolu à partie de là je peux pas t'aider plus que ça le reste c'est de l'extraction de données simple
bon courage et bonne chance pour ton projet
Cordialement.