複数のIDに基づいてLaravelモデルの結果を取得する


108

アプリケーションに実装ZendSearchしましたLaravel。私はそれをユーザーが検索ワードを入力する検索エンジンとして使用しており、ZendSearch関連性順に並べられた結果の配列を返します。ただし、ZendSearch返される配列は、レコードIDのみを返します(実際のレコード情報は返しません)。

次に、モデルをクエリして、ZendSearch関連性に基づいて順序付けられたIDの配列である配列結果に基づいて結果を取得する正しい方法は何でしょうか。

Model::find(1)IDが1のレコードを返すのはわかっていますが、返しfind()たいIDの配列を、指定した順序でそのメソッドにどのようにフィードできますか。


なぜ反対票かコメントに気をつけて?
justinl

1
別の反対票?どうして?:) laravel docsは、findMany()や配列をfind関数に渡す機能についても何も述べていません。これが正当な質問ではないのはなぜですか?:)
justinl 2015

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.