How to paginate query results in Laravel
Use the paginate() method to implement Laravel paging, instead of get() or all(), such as User::where('active', 1)->paginate(10), which automatically processes the current page and returns a paginator with navigation links, including total number, current page and other metadata; traverse the data through @foreach ($users as $user) in the Blade template, and use {{ $users->links() }} To display pagination links, you can customize it as ->links('pagination::bootstrap-4') or use simplePaginate() to improve performance; you can manually use forPage() for collections, but query-level paging is recommended to save memory; Laravel automatically reads parameters such as ?page=2 to complete page switching.

To paginate query results in Laravel, use the paginate() method on your Eloquent queries or collections. Laravel automatically handles the current page based on the page query parameter in the URL and returns a length-aware paginator with links for navigation.
Using paginate() in Controllers
Call paginate() instead of get() or all() on your model queries. Pass the number of items per page as an argument.
-
Example:
User::where('active', 1)->paginate(10); - This returns 10 active users per page with automatic pagination links
- The result includes metadata like total count, current page, and next/previous links
Customizing Pagination Output
Laravel paginators provide methods to loop through results and render navigation links.
- In your Blade template, loop through results:
@foreach ($users as $user) - Display pagination links:
{{ $users->links() }} - You can customize the view using
->links('pagination::bootstrap-4')or create your own
Paginating Simple Queries or Collections
If you're working with a collection (not a query), use forPage() manually or convert it back to a query if possible.
- For large datasets, stick to query-based pagination to avoid memory issues
- Use
simplePaginate()if you only need "Next" and "Previous" buttons and want better performance - Pass parameters like
?page=2in URLs — Laravel reads this automatically
Basically just replace get() with paginate(n) and call links() in the view. Laravel does the rest.
The above is the detailed content of How to paginate query results in Laravel. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undresser.AI Undress
AI-powered app for creating realistic nude photos
ArtGPT
AI image generator for creative art from text prompts.
Stock Market GPT
AI powered investment research for smarter decisions
Hot Article
Popular tool
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
20522
7
13634
4
How to Build a RESTful API with Sanctum Authentication in Laravel? (Token-based Auth)
Mar 10, 2026 am 01:32 AM
SanctumtokenauthrequiresexplicitconfigurationforAPIroutes:useauth:sanctummiddleware,configurethesanctumguardinauth.php,handleCSRFforSPAs,andmanuallymanagetokenrevocationandcleanup.
How to Cache Data for Better Performance in Laravel? (Cache Drivers)
Mar 08, 2026 am 01:32 AM
Which cache driver to choose: file or redis? Laravel uses the file driver by default, which saves trouble during development, but it is basically unusable after going online - it relies on file system locking and serialization, and is prone to getting stuck and read-write conflicts under high concurrency. Cache::get() occasionally returns null not because of expiration, but because of read failure. Redis is the safest production choice: atomic operations, TTL support, fast memory, and automatic eviction. If the Redis service is not running, Laravel will not report an error, but will silently fallback to the array (memory driver). The result is that the cache "seems to be effective", but it will be lost after restarting. It took a long time to check online to find that Redis was down. make sure
How to Use Middleware for Route Protection in Laravel? (Authentication)
Mar 12, 2026 am 12:53 AM
The auth middleware in Laravel does not intercept non-login requests. The fundamental reason is that the routing is defined in api.php instead of web.php, which leads to the use of API guards instead of Web guards, and does not trigger redirects; it is necessary to confirm the routing location, guard configuration and middleware order.
How to Create Reusable Scopes for Eloquent Models in Laravel? (Query Scopes)
Mar 08, 2026 am 01:30 AM
Global scope vs. local scope: When to use which global scope (GlobalScope) is automatically applied to all queries, suitable for unified rules across the entire site, such as soft deletion or tenant isolation; local scope (scope* method) must be called explicitly, suitable for common condition combinations for on-demand reuse, such as scopeActive() or scopePublished(). Misuse of global scope can lead to unintentional filtering - such as missing "archived" records on the backend admin page without being able to find out why. Practical suggestions: Prioritize writing local scope: it is more controllable, testable, and easy to debug. Only consider the global scope for logic that truly "should never be bypassed" (and make sure it supports withoutGl
How to Debug Your Laravel Application Effectively? (Telescope/Logs)
Mar 09, 2026 am 12:37 AM
The main reason why Telescope does not take effect is that the service provider registration sequence is wrong, middleware interception or improper environment configuration; SQL logs need to be explicitly enabled with DB::enableQueryLog(); slow query analysis needs to be combined with EXPLAIN; the log channel must include telescope and clear the cache.
How to Create Custom Artisan Commands in Laravel? (CLI Tools)
Mar 12, 2026 am 01:29 AM
Laravel will not automatically register the artisan command, so you need to manually add the class name to the $commands array in Kernel.php; use argument() for parameters and option() for options; the model must use the complete namespace; the queue task must use dispatch(); the output should use methods such as info() instead of echo.
How to Secure Your Laravel Application? (Common Vulnerabilities)
Mar 11, 2026 am 01:09 AM
Eloquent is safe, but DB::raw(), etc. are escape channels and need to be whitelisted to verify field names/sorting directions; Blade escapes are prone to failure when {!!!!}, Vue interpolation, and JSON output; CSRF is often bypassed due to middleware mismatching in API routing; .env needs to be explicitly prohibited from access by the web server.
How to Implement Two-Factor Authentication in Laravel? (Security)
Mar 11, 2026 am 01:27 AM
Why doesn't Fortify that comes with Laravel use 2FA directly out of the box? Laravel's officially recommended authentication solution, Fortify, does support two-step verification, but it is not enabled by default - it only registers relevant routes and database migrations. The enableTwoFactorAuthentication() method requires you to call it manually, and the user model must implement the TwoFactorAuthenticatable interface. Many people think that everything is fine after running phpartisanfortify:install. As a result, they cannot see the QR code or backup code when logging in. Common errors: Calltoun





