嵌套Eloquent查询

时间:2016-06-26 06:25:05

标签: php laravel eloquent

我是Laravel Eloquent游戏的新手,并且尝试使用另一个数据库设置的动态变量创建查询时遇到了一些困难。

我有一个名为文章的表格,用户可以在其中存储有关文章的文章和信息。用户可以将杂志中的文章(表格:杂志)分组,每个文章可以包含多篇文章,并且与用户相关联。每篇文章都可以与多个杂志相关联

我正在尝试提出一个查询,该查询会提取特定杂志中所有文章的article_id,然后使用article_id数组从相应的文章中获取所有信息的数组那些article_id。

帮助?!

编辑1: 感谢新手的反馈。如果您认为此问题已经得到解答,我将非常感谢您在正确的搜索条款中提供一些指导。

我尝试使用的查询是:

$mygazineQuery = (new UserMygazineArticles())->where('mygazine_id', $mygazineSearch);
foreach ($MygazineQuery AS $key => $val) {
    $MygazineQuery[$key] = (array)$val;
}
$codes = array_column($MygazineQuery, 'article_id');
$articles = Articles::whereIn('id', $codes)->get();

**Table UserMygazineArticles**
`id` int(11) NOT NULL AUTO_INCREMENT,
  `articles_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `mygazine_id` text NOT NULL,
  `saved` datetime NOT NULL,
  PRIMARY KEY (`id`)

1 个答案:

答案 0 :(得分:0)

使用Eloquent,您可以将表连接在一起。这是未经测试的,并且基于假设您的表格的详细信息:

$query =  \DB::table('articles')->select("articles.*");
$query->join('user_articles_magazine', 'articles.id', '=', 'user_articles_magazine.articles_id');
$query->join('magazine', 'magazine.id', '=', 'user_articles_magazine.magazine_id');
$query->where('magazine.id', $magazineId);
return $query->get();