Laravel pagination is quite a simple thing to use, but to determine the amount of pages it makes additional query to the database, which may be a problem for bigger amount of data. And you can actually avoid it.
Let's take a simple pagination example from a table with 5000 customers:
$customers = Customer::paginate(10);
And then in Blade file you have this:
First name |
Last name |
Email |
@foreach ($customers as $customer)
{{ $customer->first_name }} |
{{ $customer->last_name }} |
{{ $customer->email }} |
@endforeach
{{ $customers->links() }}
Here's how the queries look in Laravel Debugbar.
As you can see, there's query for the actual page, and then counting the amount of entries/pages.
What if you don't need the numbers of pages and you just want to show links for Previous and Next? There's a function for that called simplePaginate().
$customers = Customer::simplePaginate(10);
Now, look at the amount of queries.
Hope that helps!
No comments or questions yet...