douwaz34842 2018-07-10 21:23
浏览 62
已采纳

当使用多对多关系Laravel / Eloquent / Query构建器时,如何从另一个表中获取所有书籍

Let me explain the scenario.

i have tables:

competitions

id title body

then

books

id name user_id

then i have a pivot table to store participants

so

participants

id competition_id user_id

Now i have set some relationships for these models.

Competition model

 public function participants()
    {
        return $this->belongsToMany('App\User');
    }

User model

 public function participatedCompetitions()
    {
        return $this->belongsToMany('App\Competition');
    }

Now i am fetching one single competition and in that same query i need to fetch a list of books of the participants of that competition. So how can i achieve this. Thanks.

  • 写回答

1条回答 默认 最新

  • dongqin1819 2018-07-10 21:38
    关注

    Here is how you get all the books:

    $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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?