web-dev-qa-db-ja.com

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

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

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

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

83
justinl

簡単です。 findManyを使用します。

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

ところで、配列をfind()に渡すこともでき、内部的にfindManyを呼び出します:

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

内部ではwhereInを実行するだけなので、それも実行できます。

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