【问题标题】:Nesting Eloquent Queries嵌套 Eloquent 查询
【发布时间】:2016-06-26 17:11:50
【问题描述】:

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

我有一个名为 articles 的表,用户可以在其中存储文章和有关文章的信息。用户可以对杂志中的文章进行分组(表格:ma​​gazine),每个杂志可以有多篇文章并与一个用户相关联。每篇文章可以关联多本杂志

我正在尝试提出一个查询,该查询会提取特定杂志中所有文章的 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`)

【问题讨论】:

  • 你能详细说明你尝试了什么吗?
  • 拜托,我回答了这样/类似的问题一百万次,其他人也是如此,请检查我最近的答案并遵循相同的逻辑。
  • @AchrafKhouadja 你能推荐正确的搜索查询吗?我不确定我在寻找正确的东西。
  • @MasterDJon 谢谢!这是我首先运行的代码,但它返回空白:$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();
  • 请通过编辑问题添加这些信息。很难像那样跟随。我对这个问题的看法是:编辑问题+添加评论,说明我已通过说明我正在回答的人对其进行了编辑。

标签: php laravel eloquent


【解决方案1】:

使用 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();

【讨论】:

  • 这给了我前进的方向!非常感谢!
猜你喜欢
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 2019-03-15
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2019-02-26
相关资源
最近更新 更多