¿Hay alguna manera de "limitar" el resultado con ORM ELOCUENTE de Laravel?
SELECT * FROM `games` LIMIT 30 , 30
¿Y con Eloquent?
¿Hay alguna manera de "limitar" el resultado con ORM ELOCUENTE de Laravel?
SELECT * FROM `games` LIMIT 30 , 30
¿Y con Eloquent?
Respuestas:
Cree un modelo de juego que extienda Eloquent y use esto:
Game::take(30)->skip(30)->get();
take()
Aquí obtendrá 30 registros y skip()
aquí se compensará a 30 registros.
En versiones recientes de Laravel también puede usar:
Game::limit(30)->offset(30)->get();
Si está buscando paginar resultados, use el paginador integrado , ¡funciona muy bien!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Podemos usar LIMIT como abajo:
Model::take(20)->get();
take
es solo un alias para limit
. Ver github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Además, podemos usarlo de la siguiente manera
Para llegar solo primero
$cat_details = DB::table('an_category')->where('slug', 'people')->first();
Para llegar por límite y compensación
$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();