Ambil hasil Model Laravel berdasarkan beberapa ID

109

Saya telah menerapkan ZendSearchke dalam Laravelaplikasi saya . Saya menggunakannya sebagai mesin pencari saya di mana pengguna akan mengetik kata pencarian, dan kemudian ZendSearchakan mengembalikan saya serangkaian hasil yang diurutkan berdasarkan relevansi. Namun, array yang ZendSearchmengembalikan, hanya mengembalikan ID catatan saya (tidak mengembalikan informasi catatan sebenarnya).

Apa selanjutnya cara yang benar untuk menanyakan Model saya untuk mengambil hasil berdasarkan ZendSearchhasil larik yang hanya merupakan larik ID yang diurutkan berdasarkan relevansi.

Saya tahu Model::find(1)mana yang akan mengembalikan catatan saya dengan ID 1, tetapi bagaimana saya bisa memberi makan find()metode itu array ID yang ingin saya kembalikan dalam urutan yang saya berikan.

justinl
sumber
Mau berkomentar mengapa downvote?
justinl
1
Suara negatif lainnya? Mengapa? :) Dokumen laravel bahkan tidak mengatakan apapun tentang findMany () atau kemampuan untuk meneruskan sebuah array ke fungsi find. Bagaimana ini bukan pertanyaan yang sah? :)
justinl
4
Berikan suara untuk Anda, pertanyaan ini membantu saya. :) Saya juga tidak melihat findManydi dokumen, dan itu ada di dokumen API .
Peter Liang

Jawaban:

234

Itu sederhana. Penggunaan findMany:

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

Ngomong-ngomong, Anda juga bisa meneruskan array ke find()dan secara internal akan memanggil findMany:

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

Di bawah tenda itu hanya melakukan whereInsehingga Anda dapat melakukannya juga:

$models = Model::whereIn('id', [1, 2, 3])->get();
lukasgeiter
sumber
Sangat elegan dan sederhana. Terima kasih atas jawaban anda.
chocolata
7
Anda bahkan dapat mengatakan itu fasih ;)
musicin3d