Lấy kết quả Mô hình Laravel dựa trên nhiều ID


108

Tôi đã triển khai ZendSearchvào Laravelứng dụng của mình . Tôi đang sử dụng nó làm công cụ tìm kiếm của mình, nơi người dùng sẽ nhập một từ tìm kiếm và sau đó ZendSearchsẽ trả về cho tôi một loạt kết quả được sắp xếp theo mức độ liên quan. Tuy nhiên, mảng ZendSearchtrả về chỉ trả về ID bản ghi của tôi (nó không trả về bất kỳ thông tin bản ghi thực tế nào).

Cách tiếp theo sẽ là cách chính xác để truy vấn Mô hình của tôi để lấy kết quả dựa trên ZendSearchkết quả mảng vốn chỉ là một mảng ID được sắp xếp dựa trên mức độ liên quan.

Tôi biết trong số Model::find(1)đó sẽ trả về bản ghi của tôi với ID là 1, nhưng làm cách nào tôi có thể cung cấp cho find()phương thức đó một mảng ID mà tôi muốn được trả lại theo thứ tự mà tôi đưa ra.


Quan tâm để bình luận tại sao downvote?
justinl

1
Một phản đối khác? Tại sao? :) Các tài liệu laravel thậm chí không nói gì về findMany () hoặc khả năng truyền một mảng cho hàm find. Làm thế nào đây không phải là một câu hỏi chính đáng? :)
justinl

4
Hãy bỏ phiếu cho bạn, câu hỏi này đã giúp tôi. :) Tôi cũng không thấy findManytrong tài liệu và nó có trong tài liệu API .
Peter Liang

Câu trả lời:


233

Đơn giản vậy thôi. Sử dụng findMany:

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

Nhân tiện, bạn cũng có thể chuyển một mảng đến find()và nó sẽ gọi nội bộ findMany:

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

Dưới mui xe, nó chỉ làm một whereInvì vậy bạn cũng có thể làm điều đó:

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

Nó rất thanh lịch và đơn giản. Cảm ơn câu trả lời của bạn.
chocolata

7
Bạn thậm chí có thể nói nó hùng hồn ;)
musicin3d
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.