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.
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();