ZendSearch
をLaravel
アプリケーションに実装しました。ユーザーが検索ワードを入力する検索エンジンとして使用し、ZendSearch
は関連性順に並べられた結果の配列を返します。ただし、ZendSearch
が返す配列は、自分のレコードIDのみを返します(実際のレコード情報は一切返しません)。
次に、関連性に基づいて順序付けられたIDの配列であるZendSearch
配列の結果に基づいて結果を取得するためにモデルを照会する正しい方法は何でしょうか。
IDが1のレコードを返すModel::find(1)
を知っていますが、そのfind()
メソッドに、指定した順序で返されるIDの配列を渡すにはどうすればよいですか。
簡単です。 findMany
を使用します。
$models = Model::findMany([1, 2, 3]);
ところで、配列をfind()
に渡すこともでき、内部的にfindMany
を呼び出します:
$models = Model::find([1, 2, 3]);
内部ではwhereIn
を実行するだけなので、それも実行できます。
$models = Model::whereIn('id', [1, 2, 3])->get();