Bonjour bonjour,

Alors, voilà mon problème, j'ai une zone membre et chaque membre peut faire des publications. Et je voudrais bien que l'on puisse commenter ces publications, mais, uniquement les membres.

Donc, déjà, dans ma table "comments", j'ai ajouté ces 2 champs pour lier les commentaires aussi bien aux "posts" qu'aux "users" : user_id et post_id.

Mon problème est lors de la liaison des modèles. Vu qu'un commentaire appartient aussi bien au post qu'à son user. Donc, dans la doc, je suis tombé sur "hasAndBelongsToMany". Et je suppose que c'est ça ma réponse. Mais, j'ai du mal à m'imaginer les syntaxe (et la doc ne m'aide pas pour le coup... ).

Si vous pouviez donc m'éclairer sur comment faire pour que "hasAndBelongsToMany" fasse la liaison avec les posts et les users c'est serait bien sympa :)

Merci d'avance :)

6 réponses


Il y a un tuto sur HABTM que je vais revoir aussi, car j'ai aussi des problèmes de ce type.

Axiol
Auteur

Ok. Donc, là, je m'en veux pas mal... J'avais complètement zappé ce tuto... Bon, allons voir ça :)

Axiol
Auteur

Mouai mouai, ça ne couvre pas vraiment mon problème là :/ (même si il me sera bien utile quand je rajouterai les tags). Donc, mon problème reste toujours ouvert :)

Bon, je voudrais bien t'aider mais je suis un bras cassé en développement. Ceci dit, en lisant ton message, je comprends pas bien ou ca pose probleme.

Axiol
Auteur

Bah, mon problème, c'est que les commentaires appartiennent aussi bien à un post qu'à un user. Donc, à moins que l'on puisse définir plusieurs belongsTo, je bloque.

Je viens de lire dans la doc de cakephp, qu'il faut surement utiliser hasMany .

peut être le mettre dans l'afterSave du Model Commentaire

var $hasMany = array(        
'Post' => array('foreignKey' => 'commentaire_id' ),        
'User' => array('foreignKey' => 'commentaire_id' ) );