Czy istnieje sposób na „ograniczenie” wyniku za pomocą ELOQUENT ORM of Laravel?
SELECT * FROM `games` LIMIT 30 , 30
A z Eloquent?
Czy istnieje sposób na „ograniczenie” wyniku za pomocą ELOQUENT ORM of Laravel?
SELECT * FROM `games` LIMIT 30 , 30
A z Eloquent?
Odpowiedzi:
Utwórz model gry, który rozszerza Eloquent i użyj tego:
Game::take(30)->skip(30)->get();
take()
tutaj dostaniesz 30 rekordów, a skip()
tutaj wyrównanie do 30 rekordów.
W ostatnich wersjach Laravel możesz również użyć:
Game::limit(30)->offset(30)->get();
Jeśli chcesz podzielić wyniki na strony, użyj zintegrowanego paginatora , działa świetnie!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Możemy użyć LIMIT jak poniżej:
Model::take(20)->get();
take
jest to tylko alias do limit
. Zobacz github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Możemy również użyć tego na następujące sposoby
Aby dostać tylko pierwszy
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Aby uzyskać limit i przesunięcie
$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();