Birden fazla kimliğe dayalı Laravel Modeli sonuçlarını alın


110

Ben uygulayan ZendSearchbenim içine Laraveluygulamadan. Bunu, kullanıcıların bir arama kelimesi ZendSearchyazacağı ve ardından bana alaka düzeyine göre sıralanmış bir sonuç dizisi getireceği arama motorum olarak kullanıyorum . Ancak, ZendSearchdönen dizi yalnızca benim kayıt kimliklerimi döndürür (gerçek kayıt bilgilerinin hiçbirini döndürmez).

ZendSearchAlaka düzeyine göre sıralanan bir kimlik dizisi olan dizi sonuçlarına göre sonuçları almak için Modelimi sorgulamanın doğru yolu bundan sonra ne olabilir ?

Model::find(1)Hangisinin kaydımı 1 kimliğiyle döndüreceğini biliyorum , ancak bu find()yöntemi, verdiğim sırayla döndürülmesini istediğim bir dizi kimliği nasıl besleyebilirim .


Neden olumsuz oy kullandığınızı yorumlamak ister misiniz?
justinl

1
Başka bir olumsuz oy mu? Neden? :) Laravel belgeleri findMany () veya bir diziyi find işlevine geçirme yeteneği hakkında hiçbir şey söylemiyor. Bu nasıl meşru bir soru değil? :)
justinl

4
Size oy verin, bu soru bana yardımcı oldu. :) findManyBelgede de görmedim ve API belgesinde .
Peter Liang

Yanıtlar:


236

Bu basit. Kullanım findMany:

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

Bu arada, bir diziyi de iletebilirsiniz find()ve dahili olarak şunları çağırır findMany:

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

Kaputun altında sadece bir şey yapar, whereInböylece siz de yapabilirsiniz:

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

Çok zarif ve basit. Cevabınız için teşekkürler.
chocolata

7
Hatta bunun anlamlı olduğunu bile söyleyebilirsiniz ;)
musicin3d
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.