Я внедрил ZendSearch
в мое приложение Laravel
. Я использую его как свою поисковую систему, где пользователи будут вводить слово поиска, а затем ZendSearch
вернет мне массив результатов, упорядоченных по релевантности. Однако массив, возвращаемый ZendSearch
, возвращает только мой идентификатор записи (он не возвращает никакой информации о реальной записи).
Что будет дальше, это правильный способ запроса моей модели на получение результатов на основе результатов массива ZendSearch
, который представляет собой всего лишь массив идентификаторов, упорядоченных по релевантности.
Я знаю Model::find(1)
, который вернет мою запись с идентификатором 1, но как я могу передать этот метод find()
массив идентификатора, который я хочу вернуть в том порядке, который я ему даю.
Это просто. Используйте findMany
:
$models = Model::findMany([1, 2, 3]);
Кстати, вы также можете передать массив в find()
, и он будет внутренне вызывать findMany
:
$models = Model::find([1, 2, 3]);
Под капотом он просто делает whereIn
, чтобы вы могли это сделать:
$models = Model::whereIn('id', [1, 2, 3])->get();