我已经在我的Laravel
应用程序中实现了ZendSearch
。 我使用它作为我的搜索引擎,用户将在其中键入一个搜索词,然后ZendSearch
将返回按相关性排序的结果数组。 但是,ZendSearch
返回的数组仅返回我的记录 ID(它不返回任何实际的记录信息(。
接下来查询我的模型以根据ZendSearch
数组结果检索结果的正确方法是什么,该结果只是根据相关性排序的 ID 数组。
我知道Model::find(1)
会以 ID 为 1 返回我的记录,但是我如何向该find()
方法提供我希望按给定顺序返回的 ID 数组。
这很简单。使用findMany
:
$models = Model::findMany([1, 2, 3]);
顺便说一下,你也可以将数组传递给find()
,它将在内部调用findMany
:
$models = Model::find([1, 2, 3]);
在引擎盖下,它只是做了一个whereIn
所以你也可以这样做:
$models = Model::whereIn('id', [1, 2, 3])->get();
只需使用->find($ids)
$ids = [1,2,3,4]
$model = Model::find($ids);
就我而言,我使用这样的query
$ids = [1,2,3,4]
$model = Model::query()->find($ids);
我在流明中使用了它。