web-dev-qa-db-fra.com

Récupérer Laravel Résultats du modèle basés sur plusieurs identifiants

J'ai implémenté ZendSearch dans mon application Laravel. Je l'utilise comme moteur de recherche, où les utilisateurs tapent un mot de recherche, puis ZendSearch me renvoie un tableau de résultats classés par pertinence. Cependant, le tableau retourné par ZendSearch ne renvoie que les identifiants de mon enregistrement (il ne renvoie aucune information d'enregistrement réelle).

Quelle serait ensuite la manière correcte d'interroger mon modèle pour extraire les résultats en fonction des résultats du tableau ZendSearch, qui est simplement un tableau d'ID ordonné en fonction de la pertinence.

Je connais Model::find(1) qui renverrait mon enregistrement avec un ID égal à 1, mais comment puis-je alimenter cette méthode find() avec un tableau d'identifiants que je souhaite retourner dans l'ordre que je suis en le donnant.

83
justinl

C'est simple. Utilisez findMany:

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

À propos, vous pouvez également passer un tableau à find() et l'appelant en interne findMany:

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

Sous le capot, il fait juste un whereIn afin que vous puissiez le faire aussi:

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