Existe uma maneira de "limitar" o resultado com o ELOQUENT ORM do Laravel?


Respostas:


241

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();

posso pedir para você dar uma olhada em uma pergunta relacionada ao ORM do Laravel aqui: stackoverflow.com/questions/59956706/… ?
Istiaque Ahmed 28/01

17

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

3
Isso é realmente incrível! Usando o bootstrap, literalmente todo o código que você precisa é $ games = Game :: paginate (30) no seu controlador e {{$ games-> links ()}} na sua opinião ... ele cuida de tudo. Laravel amoroso!
David_nash


0

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();
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.