paginació en Laravel
📌 Resum de la paginació en Laravel Laravel proporciona diferents maneres d’implementar la paginació en les consultes de base de dades. Aquí tens un resum amb els conceptes clau i els mètodes més utilitzats.
🔹 1. Mètodes de Paginació en Laravel
Laravel ofereix tres tipus de paginació principals en Eloquent i Query Builder:
✅ paginate()
- Retorna un objecte LengthAwarePaginator amb tots els detalls de la paginació (pàgina actual, total d’elements, etc.).
- És útil quan necessites mostrar enllaços de pàgina (links()).
- Exemples:
$posts = Post::paginate(10); // Retorna 10 resultats per pàgina
✅ simplePaginate()
- Retorna un objecte Paginator, que és més lleuger però només permet avançar o retrocedir (sense veure el total de pàgines).
- Útil si no necessites saber quantes pàgines hi ha.
- Exemple:
$posts = Post::simplePaginate(10);
✅ cursorPaginate()
- Utilitza paginació basada en id o timestamps en lloc de LIMIT/OFFSET, cosa que és més eficient per bases de dades grans.
- No permet anar enrere, només avançar.
- Exemple:
$posts = Post::orderBy('id')->cursorPaginate(10);
🔹 2. Mostrar la Paginació a la Vista (Blade)
Un cop tens la paginació en el controlador, has d’afegir links() a la vista per mostrar els enllaços de navegació.
✅ Bàsic
{{ $posts->links() }}
✅ Amb Tailwind (Laravel 8+)
Si fas servir Tailwind CSS, pots especificar el disseny de la paginació:
{{ $posts->links('pagination::tailwind') }}
✅ Mantenir paràmetres de cerca en la paginació
Si filtres per categoria, etiqueta o altres criteris, has de passar els paràmetres a les pàgines següents amb appends():
{{ $posts->appends(request()->query())->links() }}
🔹 3. Paginació amb Query Builder
Si utilitzes Query Builder en comptes d’Eloquent, pots paginar les consultes així:
$posts = DB::table('posts')->paginate(10);
🔹 4. Verificar si la Paginació Existeix a la Vista
Si vols evitar errors, pots comprovar que $posts sigui un Paginator abans de cridar links():
@if ($posts instanceof \Illuminate\Pagination\LengthAwarePaginator) {{ $posts->links() }} @endif
🔹 5. Personalitzar la Paginació
Si vols modificar l’aspecte de la paginació, pots publicar les vistes de la paginació de Laravel:
php artisan vendor:publish --tag=laravel-pagination
Això generarà les vistes de la paginació a resources/views/vendor/pagination/, on podràs modificar els fitxers.
📌 Conclusió
- Usa paginate() per defecte per obtenir una paginació completa.
- appends(request()->query()) és necessari per mantenir els filtres en la paginació.
- Tailwind està suportat per defecte amb links('pagination::tailwind').
- Personalitza la paginació si cal publicant les vistes.
Amb aquest resum ja tens una base sòlida per implementar paginació a qualsevol projecte Laravel! 🚀
- Categoria: web_development
- URL: https://laravel-news.com/laravel-pagination
- YouTube: https://www.youtube.com/watch?v=Ft12PjuNbmI
- Etiquetes: laravel, framework
- Data de creació: 17/01/2025
- Última actualització: 17/01/2025