2013-05-17 4 views
0

CakePHP 문서에서 그들은 아래와 같이 이것을 구현합니다 !!어떻게 CakePHP 모델로 FriendShip을 구현할 수 있습니까?

class Message extends AppModel { 
    public $belongsTo = array(
     'Sender' => array(
      'className' => 'User', 
      'foreignKey' => 'user_id' 
     ), 
     'Recipient' => array(
      'className' => 'User', 
      'foreignKey' => 'recipient_id' 
     ) 
    ); 
} 

class User extends AppModel { 
    public $hasMany = array(
     'MessageSent' => array(
      'className' => 'Message', 
      'foreignKey' => 'user_id' 
     ), 
     'MessageReceived' => array(
      'className' => 'Message', 
      'foreignKey' => 'recipient_id' 
     ) 
    ); 
} 

하지만이 나와 함께 작동하지 않았다! 및 사용자 모델의 일부 테이블을 찾을 수 없습니다 몇 가지 오류를 줘 !! 모델의 동일한 이름에 HasMany의 이름을 사용하는 경우에만 작동합니다!

답변

0

일부 인터넷 검색이 실패한 후 !! 나는 가장 쉬운 방법으로갑니다!

public $hasMany = array(


    'Follow_me'=>array(
     'className'=>'Friend', 
     'foreignKey'=>'user_to' , 
      ) , 

     'Follow_them'=>array(
     'className'=>'Friend2', 
     'foreignKey'=>'user_from' 
    )); 

친구의 테이블이

ID가 될 친구 모델

public $belongsTo = array(


     'User'=>array(
     'className'=>'User', 
     'foreignKey'=>'user_from' , 
     ) , 


    ); 

사용자 모델 지금 클래스 사용자

이다 || user_from || user_to || 만든 || 수정 된

지금 가장 쉬운 방법! 새로운 모델 클래스 만들기 Friend2

public $useTable = 'friends'; 
    public $belongsTo = array(


     'User'=>array(
     'className'=>'User', 
     'foreignKey'=>'user_to' , 

    ) , 


    ); 

지금 !! 당신은 사용자 모델에서 가져올 때 는 데이터는이 당신에게 모든

을 도움이됩니다

array(
    (int) 0 => array(
     'User' => array() , 
       'Follow_me' => array() , 
       'Follow_them' => array() , 
       'Some_Other_Relations_Goes_here' => array() 
)) 

희망 같은 것

관련 문제