여러 ID를 기반으로 Laravel 모델 결과 검색


108

ZendSearchLaravel응용 프로그램에 구현 했습니다 . 사용자가 검색 단어를 입력 한 다음 ZendSearch관련성에 따라 정렬 된 결과 배열을 반환 하는 검색 엔진으로 사용하고 있습니다. 그러나 ZendSearch반환 되는 배열 은 내 레코드 ID 만 반환합니다 (실제 레코드 정보는 반환하지 않음).

다음 ZendSearch은 관련성에 따라 정렬 된 ID의 배열 인 배열 결과를 기반으로 결과를 검색하기 위해 모델을 쿼리하는 올바른 방법 입니다.

Model::find(1)ID가 1 인 레코드를 반환하는 방법을 알고 있지만, find()내가 제공하는 순서대로 반환하려는 ID 배열을 해당 메서드에 제공 할 수있는 방법은 무엇입니까?


왜 반대표를 던 졌는지 언급 하시겠습니까?
justinl

1
또 다른 반대표? 왜? :) laravel 문서는 findMany () 또는 find 함수에 배열을 전달하는 기능에 대해 아무 말도하지 않습니다. 이것이 합법적 인 질문이 아닌 이유는 무엇입니까? :)
justinl

4
이 질문이 도움이되었습니다. :) 나는 findMany문서에서도 보지 않았고 API 문서에 있습니다.
Peter Liang

답변:


233

간단합니다. 사용 findMany:

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

그건 그렇고, 배열을 전달할 수도 있으며 find()내부적으로 다음을 호출합니다 findMany.

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

내부적으로는 whereIn당신도 그렇게 할 수 있습니다.

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

너무 우아하고 간단합니다. 답변 해 주셔서 감사합니다.
chocolata

7
웅변 적이라고 말할 수도 있습니다 .)
musicin3d
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.