基于多个ID检索Laravel模型结果

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

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

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


答案 1

这很简单。用:findMany

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

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

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

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

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

答案 2

只需使用->find($ids)

$ids = [1,2,3,4]
$model = Model::find($ids);

在我的情况下,我像这样使用query

$ids = [1,2,3,4]
$model = Model::query()->find($ids);

我在Lumen中使用了它。


推荐