我正在做一个Laravel项目,我有一个文章ID数组,我需要从数据库中检索多个记录,以获得相同的ID。然而,当我使用Eloquent时,即使同一个ID在数组中出现多次,我也只得到一个结果。
下面是数组的一个例子:
$articleIds = [5, 5, 5];
$articles = Article::whereIn('id', $articleIds)->get();
我得到的结果只有一条记录,但我希望得到多条记录,因为数组中重复了相同的ID。
如何修改Eloquent查询以检索同一ID的多个记录?
我也试过下面从另一个stack answer
Article::findMany($all_ids)->keyBy('id');
$blocks = array_map(function ($id) use ($all_record) {
return $all_record[$id];
}, $all_ids);
我可以使用循环得到结果,但我不想要那个结果,我想要一个有说服力的或查询(DB)方式的结果。
2条答案
按热度按时间5lhxktic1#
一个非常粗略的方法(如@PsyLogic所提到的)是在数组上循环,并为每个ID进行单独的查询:
虽然这种方法确实“有效”,但在给定大量ID时,它可能会导致一些严重的性能问题。
0tdrvxhp2#
我能建议的是,