繁体   English   中英

嵌套口才查询

[英]Nesting Eloquent Queries

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM