Gibt es eine Möglichkeit, das Ergebnis mit ELOQUENT ORM of Laravel zu "begrenzen"?
SELECT * FROM `games` LIMIT 30 , 30
Und mit Eloquent?
Gibt es eine Möglichkeit, das Ergebnis mit ELOQUENT ORM of Laravel zu "begrenzen"?
SELECT * FROM `games` LIMIT 30 , 30
Und mit Eloquent?
Antworten:
Erstellen Sie ein Spielmodell, das Eloquent erweitert, und verwenden Sie Folgendes:
Game::take(30)->skip(30)->get();
take()
Hier werden 30 Datensätze abgerufen und skip()
hier werden 30 Datensätze versetzt.
In neueren Laravel-Versionen können Sie außerdem Folgendes verwenden:
Game::limit(30)->offset(30)->get();
Wenn Sie Ergebnisse paginieren möchten , verwenden Sie den integrierten Paginator . Er funktioniert hervorragend!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Wir können LIMIT wie folgt verwenden:
Model::take(20)->get();
take
ist nur ein Alias zu limit
. Siehe github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Wir können es auch folgendermaßen verwenden
Nur zuerst zu bekommen
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Um durch Limit und Offset zu kommen
$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();