表朋友:id,user_id,friend_id。
表user_profiles:id,user_id,first_name ...
如何通过Eloquent ORM获取用户朋友的列表?
user_id:5 | friend_id:6
user_id:6 | friend_id 5
类似的问题:
Friendship system with Laravel : Many to Many relationship
Laravel & Eloquent - Query 'Friends' Relationship
我无法理解谁调用方法getFriendsAttribute()。
如何做查询构建器。
谢谢!
答案 0 :(得分:2)
您可以在User
型号上定义关系:
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);
}
}
然后,您可以按$user->myFriends
获取用户朋友列表,以查询朋友的名字:$user->myFriends()->where('first_name', '=', 'John')->get()
。