馃搫 Paginaci贸n de resultados
Organiza y muestra tus datos f谩cilmente
Cuando trabajamos con grandes vol煤menes de datos, es fundamental mostrar los resultados de manera paginada.
Laravel facilita esta tarea con m茅todos integrados como
paginate() y simplePaginate(), que generan autom谩ticamente los enlaces y metadatos necesarios.
馃摌 Ejemplo b谩sico de paginaci贸n
Puedes aplicar la paginaci贸n directamente en tus controladores al obtener datos del modelo:
app/Http/Controllers/ProductController.php
public function index()
{
$products = Product::paginate(10); // 10 resultados por p谩gina
return view('products.index', compact('products'));
}
En tu vista puedes mostrar los enlaces de paginaci贸n f谩cilmente con:
resources/views/products/index.blade.php
<table class="table table-striped">
<thead>
<tr><th>ID</th><th>Nombre</th><th>Precio</th></tr>
</thead>
<tbody>
@foreach ($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->price }}€</td>
</tr>
@endforeach
</tbody>
</table>
{{ $products->links() }}
馃寪 Paginaci贸n en APIs
Laravel tambi茅n puede paginar resultados en formato JSON.
Si est谩s construyendo una API, simplemente usa el m茅todo paginate() dentro de tu controlador API.
app/Http/Controllers/Api/ProductController.php
public function index()
{
$products = Product::paginate(5);
return response()->json($products);
}
Esto generar谩 autom谩ticamente un JSON con la estructura:
{
"current_page": 1,
"data": [
{ "id": 1, "name": "Televisor", "price": 250 },
{ "id": 2, "name": "Lavadora", "price": 400 }
],
"first_page_url": "http://api.tusitio.com/products?page=1",
"last_page": 3,
"per_page": 5,
"total": 15
}
馃帹 Personalizar el estilo de la paginaci贸n
Si usas Bootstrap, Laravel puede adaptar autom谩ticamente los estilos.
Solo agrega la siguiente l铆nea en tu AppServiceProvider:
app/Providers/AppServiceProvider.php
use Illuminate\Pagination\Paginator;
public function boot(): void
{
Paginator::useBootstrap();
}
Esto har谩 que los enlaces de paginaci贸n se vean con el estilo de Bootstrap, integr谩ndose perfectamente en tu frontend.
✅ Buenas pr谩cticas
- Define un n煤mero razonable de elementos por p谩gina (entre 10 y 25).
- Evita paginar consultas con joins pesados sin 铆ndices adecuados.
- Usa
simplePaginate()cuando no necesites la cuenta total de registros (mejora el rendimiento). - Para APIs, incluye siempre los metadatos de paginaci贸n en la respuesta JSON.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias