php - 使用多对多关系 Laravel/Eloquent/查询构建器时如何从另一个表获取所有书籍

标签 php mysql laravel laravel-5 eloquent

让我解释一下这个场景。

我有 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/

相关文章:

laravel - 从 Laravel Excel 导入中返回变量

javascript - Laravel 在 javascript 中从 Controller 获取两个值数组计数

javascript - PHP 中如果为 null 则隐藏 div

php - 有没有办法隐藏javascript代码?

mysql - MySQL 中 *= 运算符的替代方案

javascript - 使用 jquery 的 CodeIgniter 动态输入并插入到数据库

css - laravel 5.3.16 不包括 Bootstrap 功能?

php - 如何在单个查询中使用 While 循环编写多个查询?

php - 使用 PHP 解析字符串以按行组织

java - 在 MySQL 和/或 java 中将明文密码转换为 bcrypt