2009-08-16 6 views
1

J'essaie de configurer un type de site de réseau social, où les utilisateurs peuvent avoir des amis et s'envoyer des messages.Comment lier une table deux fois à une autre table en utilisant cakePHP

J'ai une table d'utilisateurs, et une table d'amis, qui a fondamentalement un user_id et user_friends_id. En utilisant cakePHP, comment relier les id_utilisateur et id_utilisateur à la table des utilisateurs? J'ai utilisé bake pour créer tous mes modèles et contrôleurs, mais quand j'ai vu la page des utilisateurs, j'ai eu une erreur car cakePHP ne sait pas comment lier le user_friend_id à la table des utilisateurs.

Quelqu'un peut-il aider s'il vous plaît?

Répondre

2

noms de table (champs):

users (user_id, user fields....) 
friends_users (user_id, friend_id) 

associations:

User hasAndBelongsToMany Friend 
Friend hasAndBelongsToMany User 

dans le modèle de l'utilisateur:

var $hasAndBelongsToMany = array(
    'Friend' => array(
     'className' => 'User', 
     'joinTable' => 'friends_users', 
     'foreignKey' => 'user_id', 
     'associationForeignKey' => 'friend_id', 
    ); 

dans le modèle de votre ami:

var $useTable = 'users'; 
var $hasAndBelongsToMany = array(
    'User' => array(
     'className' => 'User', 
     'joinTable' => 'friends_users', 
     'foreignKey' => 'friend_id', 
     'associationForeignKey' => 'user_id', 
    ); 
+0

Merci beaucoup. Je ne connaissais pas le 'foreignKey' => 'friend_id', 'associationForeignKey' => 'user_id' Je vais vous donner un bash – Pierre

Questions connexes