Existe-t-il un moyen de «limiter» le résultat avec ELOQUENT ORM de Laravel?


Réponses:


241

Créez un modèle de jeu qui étend Eloquent et utilisez ceci:

Game::take(30)->skip(30)->get();

take()ici obtiendra 30 enregistrements et skip()ici compensera à 30 enregistrements.


Dans les versions récentes de Laravel, vous pouvez également utiliser:

Game::limit(30)->offset(30)->get();

puis-je vous demander de jeter un oeil à une question liée à Laravel ORM ici: stackoverflow.com/questions/59956706/… ?
Istiaque Ahmed le

17

Si vous cherchez à paginer les résultats, utilisez le paginateur intégré , cela fonctionne très bien!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages

3
C'est vraiment incroyable! En utilisant bootstrap, littéralement tout le code dont vous avez besoin est $ games = Game :: paginate (30) dans votre contrôleur et {{$ games-> links ()}} dans votre vue ... il s'occupe de tout. Aimer Laravel!
david_nash


0

En outre, nous pouvons l'utiliser de différentes manières

Pour obtenir seulement le premier

 $cat_details = DB::table('an_category')->where('slug', 'people')->first();

Pour obtenir par limite et décalage

$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();
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.