根据多个ID检索Laravel模型结果


108

我已经实现ZendSearch了我的Laravel应用程序。我将其用作我的搜索引擎,用户将在其中键入搜索词,然后ZendSearch返回给我一系列按相关性排序的结果。但是,ZendSearch返回的数组仅返回我的记录ID(它不返回任何实际记录信息)。

接下来将是查询我的模型以基于ZendSearch数组结果检索结果的正确方法,该结果只是根据相关性排序的ID数组。

我知道Model::find(1)哪一个会返回ID为1的记录,但是如何向该find()方法提供要按给出顺序返回的ID数组。


关心评论为什么要投票?
justinl

1
另一票否决票?为什么?:) laravel文档甚至没有说任何有关findMany()或将数组传递给find函数的能力。这怎么不是一个合法的问题?:)
justinl

4
为您投票,这个问题确实对我有所帮助。:)我也没有findMany在文档中看到它,而在API文档中
彼得·梁

Answers:


233

很简单 用途findMany

$models = Model::findMany([1, 2, 3]);

顺便说一句,您也可以将一个数组传递给find(),它将在内部调用findMany

$models = Model::find([1, 2, 3]);

在引擎盖下它只是做一个,whereIn所以您也可以这样做:

$models = Model::whereIn('id', [1, 2, 3])->get();

它是如此的优雅和简单。感谢您的回答。
chocolata

7
您甚至可以说这很雄辩;)
musicin3d
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.