2011-08-10 19 views
0

以下は、UsersテーブルとFriendshipsテーブルです。 特定のユーザーがログインすると、$ id == user_a_idまたは$ id == user_b_idのすべてのフレンドシップを取得します。cakephpモデルの関係

| Friendships | 
| id | user_a_id | user_b_id | created | modified | 
| 1 |  1  |  2  | created | modified | 
| 2 |  1  |  5  | created | modified | 
| 3 |  3  |  1  | created | modified | 
| 4 |  2  |  4  | created | modified | 
| 5 |  3  |  2  | created | modified | 

| Users | 
| id | first_name | last_name | created | modified | 
| 1 | Barrack | Obama | -- | -- | 
| 2 | John  | McCain | -- | -- | 

オバマがログインし、私は彼の友人の名前のリストを表示したいので、クエリの結果はまた、ユーザーテーブルから2行を含める必要があります。

どのようにこの関係をCakeで設定しますか?

友だちは多数ですか?どこでもこのチュートリアルはありますか?

おかげ

EDIT:

私は次のように指定できるようにしたい:

$this->set('friendships', $this->Friendship->find('all' , IncludeBothUsersInfoInQuery)); 

ビューの各友情は、以下のように見える、と私はアクセス権を持つことができるように両方のユーザーにビュー内のデータ:

[Friendship] 
    [id] 
    [user_a_id] 
    [user_b_id] 
    [created] 
    [modified] 
     [User_A_Info] 
      [id] 
      [first_name] 
      [last_name] 
      [created] 
      [modified] 
     [User_B_Info] 
      [id] 
      [first_name] 
      [last_name] 
      [created] 
      [modified] 

答えて

1

友情belongsTo User_A User_B(2つのbelongsTo関係が必要です)の場合は、必ず外部キーを設定してください。あなたは収納可能なことに精通していますか?見つからない場合は、必要なデータを照会する方法を見てください。 User hasMany Friendshipを設定することもできます。