มีวิธี "จำกัด " ผลลัพธ์ด้วย ELOQUENT ORM ของ Laravel หรือไม่?
SELECT * FROM `games` LIMIT 30 , 30
และด้วย Eloquent?
มีวิธี "จำกัด " ผลลัพธ์ด้วย ELOQUENT ORM ของ Laravel หรือไม่?
SELECT * FROM `games` LIMIT 30 , 30
และด้วย Eloquent?
คำตอบ:
สร้างโมเดลเกมที่ขยายความเก่งและใช้สิ่งนี้:
Game::take(30)->skip(30)->get();
take()
ที่นี่จะได้รับ 30 ระเบียนและskip()
ที่นี่จะหักล้าง 30 ระเบียน
ใน Laravel เวอร์ชันล่าสุดคุณยังสามารถใช้:
Game::limit(30)->offset(30)->get();
หากคุณกำลังมองไปสู่ผลลัพธ์ที่เลขหน้าให้ใช้แบบบูรณาการpaginatorก็ทำงานได้ดี!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
นอกจากนี้เราสามารถใช้วิธีต่อไปนี้
ให้ได้ก่อนเท่านั้น
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
เพื่อให้ได้ตามขีด จำกัด และชดเชย
$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();