我很困惑应该搜索查询以查找特定用户的朋友。
我为朋友关系创建了一个数据透视表。
朋友表
id
sender
recipient
用户表
id
name
email
password
etc...
请指导特定用户的朋友搜索查询内容。
答案 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();