Laravel'in ELOQUENT ORM ile sonucu "sınırlamanın" bir yolu var mı?
SELECT * FROM `games` LIMIT 30 , 30
Ya Eloquent ile?
Laravel'in ELOQUENT ORM ile sonucu "sınırlamanın" bir yolu var mı?
SELECT * FROM `games` LIMIT 30 , 30
Ya Eloquent ile?
Yanıtlar:
Eloquent'i genişleten bir Oyun modeli oluşturun ve bunu kullanın:
Game::take(30)->skip(30)->get();
take()
burada 30 kayıt alacaksınız ve skip()
burada 30 kayıt kaymaya başlayacak.
Son Laravel sürümlerinde şunları da kullanabilirsiniz:
Game::limit(30)->offset(30)->get();
Sonuçları sayfalamak istiyorsanız , tümleşik sayfalayıcıyı kullanın, harika çalışıyor!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
LIMIT'i aşağıdaki gibi kullanabiliriz:
Model::take(20)->get();
take
sadece bir takma addır limit
. Bkz. Github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Ayrıca, aşağıdaki şekillerde kullanabiliriz
Sadece ilk önce
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Limit ve ofset ile almak için
$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();