2009-08-16 2 views
1

Я пытаюсь настроить тип социальной сети, где пользователи могут иметь друзей и отправлять друг другу сообщения.Как связать одну таблицу два раза с другой таблицей, используя cakePHP

У меня есть таблица пользователей и таблица друзей, в которой в основном есть user_id и user_friends_id. Использование cakePHP, как я могу связать user_id и user_friend_id с таблицей пользователей? Я использовал bake для создания всех своих моделей и контроллеров, но когда я просмотрел страницу пользователей, у меня появилась ошибка, потому что cakePHP не знает, как связать user_friend_id с таблицей пользователей.

Может ли кто-нибудь помочь?

ответ

2

имена таблиц (полей):

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

ассоциации:

User hasAndBelongsToMany Friend 
Friend hasAndBelongsToMany User 

в модели пользователя:

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

в Friend модели:

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

Большое спасибо. Я не знал о 'foreignKey' => 'friend_id', 'associationForeignKey' => 'user_id' Я дам ему bash – Pierre

Смежные вопросы