2016-05-30 24 views
1

テーブルの友人:id、user_id、friend_id。雄弁ORMを介してユーザの友人のリストを取得する方法ID、USER_ID、FIRST_NAME ...Laravel 5.2友情システム:多対多関係

表のuser_profiles?

user_id:5 | friend_id:6

user_id:6 | friend_id 5

同様の質問:私はgetFriendsAttribute()メソッドを呼び出します誰が理解できない

Friendship system with Laravel : Many to Many relationship

Laravel & Eloquent - Query 'Friends' Relationship

そしてそれを行う方法クエリービルダー。

ありがとうございます!

答えて

2

あなたはUserモデル上の関係を定義することができます。$user->myFriends()->where('first_name', '=', 'John')->get():次に、あなたが彼らの最初の名前で友人を照会するために、$user->myFriendsによってユーザの友人のリストを取得することができます

class User extend Model 
{ 
    ... 

    // Get list of who sent me a friend request 
    public function myFriends() 
    { 
     return $this->belongsToMany(get_class($this), 'friends', 'friend_id'); 
    } 

    // Get the list of friends whom I invited 
    public function friendsOf() 
    { 
     return $this->belongsToMany(get_class($this), 'friends', 'user_id', 'friend_id'); 
    } 

    // Merge 
    public function getFriendsAttribute() 
    { 
     return $this->myFriends->merge($this->friendOf); 
    } 
} 

を。

+0

私は関係があります。しかし、私はuser_idまたはuser_friendだけのリストを得ることができます。どのようにリクエストを結合するのですか? – Anton

+0

「私はuser_idまたはuser_friendのリストしか取得できません。どのようにリクエストを結合するのですか?あなたは何を達成したいと思いますか? – Rifki

+0

特定の 'user_id'で友人リストを取得しようとしましたか? – Rifki