C'è un modo per "limitare" il risultato con ELOQUENT ORM di Laravel?
SELECT * FROM `games` LIMIT 30 , 30
E con Eloquent?
C'è un modo per "limitare" il risultato con ELOQUENT ORM di Laravel?
SELECT * FROM `games` LIMIT 30 , 30
E con Eloquent?
Risposte:
Crea un modello di gioco che estende Eloquent e usa questo:
Game::take(30)->skip(30)->get();
take()
qui otterrà 30 record e skip()
qui sarà compensato a 30 record.
Nelle recenti versioni di Laravel puoi anche usare:
Game::limit(30)->offset(30)->get();
Se stai cercando di impaginare i risultati, usa il paginatore integrato , funziona alla grande!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Possiamo usare LIMIT come muggito:
Model::take(20)->get();
take
è solo un alias di limit
. Vedi github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Inoltre, possiamo usarlo seguendo i modi
Per ottenere solo per primo
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Per ottenere il limite e l'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();