Existe uma maneira de "limitar" o resultado com o ELOQUENT ORM do Laravel?
SELECT * FROM `games` LIMIT 30 , 30
E com Eloquent?
Existe uma maneira de "limitar" o resultado com o ELOQUENT ORM do Laravel?
SELECT * FROM `games` LIMIT 30 , 30
E com Eloquent?
Respostas:
Crie um modelo de jogo que estenda o Eloquent e use isso:
Game::take(30)->skip(30)->get();
take()
aqui terá 30 registros e skip()
aqui será compensado para 30 registros.
Nas versões recentes do Laravel, você também pode usar:
Game::limit(30)->offset(30)->get();
Se você deseja paginar resultados, use o paginador integrado , ele funciona muito bem!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Podemos usar LIMIT como abaixo:
Model::take(20)->get();
take
é apenas um alias para limit
. Consulte github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Além disso, podemos usá-lo das seguintes maneiras
Para obter apenas o primeiro
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Para obter por limite e deslocamento
$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();