Laravel搜索用户朋友的查询

时间:2017-10-24 11:37:02

标签: laravel laravel-5 laravel-query-builder

我很困惑应该搜索查询以查找特定用户的朋友。

我为朋友关系创建了一个数据透视表。

朋友表

id
sender
recipient

用户表

id
name
email
password
etc...

请指导特定用户的朋友搜索查询内容。

2 个答案:

答案 0 :(得分:0)

如果您已设置模型,则只需:

User::friends();

friends()函数描述了此示例中User模型和Friend模型之间的关系。

用户模型示例belongsToMany函数中的第二个参数是数据透视表名称:

class User extends Model
{
    public function friends()
    {
        return $this->belongsToMany("App\Friend", "user_friend");
    }
}

朋友模型的示例(可用于反向查询)。

class Friend extends Model
{
    public function friends()
    {
        return $this->belongsToMany("App\User", "user_friend");
    }
}

答案 1 :(得分:0)

您需要声明与自身的多对多关系

class User extends Model
{
    public function friends()
    {
        return $this->belongsToMany(self::class, 'friends', 'sender', 'recipient');
    }
}

使用它

$friends = User::find(3)->friends;

或过滤名为Jon的朋友

$friends = User::find(3)->friends()->where('name', 'Jon')->get();
相关问题