让我解释一下这个场景。
我有 table :
比赛
id 标题正文
然后
书籍
id 名称 user_id
然后我有一个数据透视表来存储参与者
所以
参与者
id racing_id user_id
现在我已经为这些模型设置了一些关系。
竞争
模型
public function participants()
{
return $this->belongsToMany('App\User');
}
用户
模型
public function participatedCompetitions()
{
return $this->belongsToMany('App\Competition');
}
现在我正在获取一项竞赛,在同一查询中我需要获取该竞赛参与者的书籍列表。 那么我怎样才能实现这一目标。 谢谢。
最佳答案
以下是获取所有书籍的方式:
$userIds = $competition->participant()->get()->pluck('id');
// $userIds is your collection of User Ids that is participant in that compititions.
$books = Book::whereIn('user_id',$userIds)->get();
关于php - 使用多对多关系 Laravel/Eloquent/查询构建器时如何从另一个表获取所有书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51274087/