Apakah ada cara untuk "membatasi" hasil dengan ORM SETARA Laravel?
SELECT * FROM `games` LIMIT 30 , 30
Dan dengan Eloquent?
Apakah ada cara untuk "membatasi" hasil dengan ORM SETARA Laravel?
SELECT * FROM `games` LIMIT 30 , 30
Dan dengan Eloquent?
Jawaban:
Buat model Game yang memperluas Eloquent dan gunakan ini:
Game::take(30)->skip(30)->get();
take()
di sini akan mendapatkan 30 catatan dan di skip()
sini akan mengimbangi menjadi 30 catatan.
Dalam versi Laravel terbaru, Anda juga dapat menggunakan:
Game::limit(30)->offset(30)->get();
Jika Anda ingin memberi nomor hasil, gunakan paginator terintegrasi , itu berfungsi dengan baik!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Kita bisa menggunakan LIMIT seperti di bawah ini:
Model::take(20)->get();
take
hanya alias untuk limit
. Lihat github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Juga, kita bisa menggunakannya dengan cara berikut
Untuk mendapatkan yang pertama
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Untuk mendapatkan batas dan offset
$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();