Получение результатов модели Laravel на основе нескольких идентификаторов

я реализовал ZendSearch в свою Laravel приложение. Я использую его как свою поисковую систему, где пользователи будут вводить поисковое слово, а затем ZendSearch вернет мне массив результатов, упорядоченных по релевантности. Однако массив, который ZendSearch возвращает, только возвращает мой идентификатор записи (он не возвращает никакой фактической информации о записи).

каким будет следующий правильный способ запроса моей модели для получения результатов на основе ZendSearch результаты массив-это просто массив ID упорядочен на основе релевантности.

Я знаю Model::find(1) который вернет мою запись с идентификатором 1, но как я могу кормить это find() метод массив идентификаторов, которые я хочу вернуть в том порядке, в котором я его даю.

2 ответов


это просто. Использовать findMany:

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

кстати, вы также можете передать массив в find() и он будет внутренне называю findMany:

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

под капотом он просто делает whereIn так что Вы тоже можете это сделать:

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

********* решено **********

есть много способов сделать это

Способ 1:

 Model::whereIn('id',[1,2,3]);

Способ 2:

 Model::findMany('id',[1,2,3]);

Способ 3:

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