Получение результатов модели 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]);