Có cách nào để "giới hạn" kết quả với ELOQUENT ORM của Laravel không?
SELECT * FROM `games` LIMIT 30 , 30
Và với Eloquent?
Có cách nào để "giới hạn" kết quả với ELOQUENT ORM của Laravel không?
SELECT * FROM `games` LIMIT 30 , 30
Và với Eloquent?
Câu trả lời:
Tạo mô hình Trò chơi mở rộng Eloquent và sử dụng:
Game::take(30)->skip(30)->get();
take()
ở đây sẽ nhận được 30 hồ sơ và skip()
ở đây sẽ bù vào 30 hồ sơ.
Trong các phiên bản gần đây của Laravel, bạn cũng có thể sử dụng:
Game::limit(30)->offset(30)->get();
Nếu bạn đang tìm kiếm để kết quả paginate, sử dụng tích hợp paginator , nó hoạt động tuyệt vời!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Chúng tôi có thể sử dụng GIỚI HẠN như dưới đây:
Model::take(20)->get();
take
chỉ là một bí danh limit
. Xem github.com/laravel/framework/blob/5.7/src/Illuminate/Database/ .
Ngoài ra, chúng ta có thể sử dụng nó theo những cách sau
Để chỉ nhận đầu tiên
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Để có được theo giới hạn và bù đắp
$top_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(0)->orderBy('id', 'DESC')->get();
$remaining_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(30)->orderBy('id', 'DESC')->get();