2009-08-16 4 views
1

사용자가 친구를 사귀고 서로 메시지를 보낼 수있는 소셜 네트워킹 유형의 사이트를 설정하려고합니다.cakePHP를 사용하여 한 테이블을 다른 테이블에 두 번 연결하는 방법

사용자 테이블과 기본적으로 user_id 및 user_friends_id가있는 friends 테이블이 있습니다. cakePHP를 사용하면 user_id와 user_friend_id를 어떻게 다시 users 테이블에 연결할 수 있습니까? 모든 모델과 컨트롤러를 만들기 위해 bake를 사용했지만 사용자 페이지를 볼 때 cakePHP가 user_friend_id를 users 테이블에 다시 연결하는 방법을 알지 못하기 때문에 오류가 발생했습니다.

아무도 도와 줄 수 있습니까?

답변

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', 
    ); 

친구 모델 :

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' 나는 그에게 배쉬를 줄 것이다. – Pierre

관련 문제