Zum Inhalt springen

Customizing Pagination links and sliding window

Let’s explore some powerful Laravel pagination methods that supercharge your pagination functionality. First up is the withPath method in Laravel pagination, which customizes the URI used for pagination links:

use AppModelsUser;

Route::get('/users', function () {
    // Original pagination link (without custom path)
    // E.g., http://your_app.test/users?page=1
    $users = User::paginate(15);

    // New pagination link (with custom path)
    // E.g., http://your_app.test/admin/users?page=1
    $users->withPath('/admin/users');
});

The appends method allows you to add additional query parameters to the existing pagination URL:

use AppModelsUser;

Route::get('/users', function () {
    // Original pagination link
    // E.g., http://your_app.test/users?page=2
    $users = User::paginate(15);

    // New pagination link (with the appended query string)
    // E.g., http://your_app.test/users?page=2&sort=asc
    $users->appends(['sort' => 'asc']);
});

In some cases, you may have multiple paginations on a single page. If you use numerous paginator instances without differentiation, they may conflict with each other. To resolve this, assign a unique name to each paginator instance:

// This will generate a URL like: https://example.com/users?foo=3
User::where('votes', '>', 100)
    ->paginate(perPage: 15, columns: ['*'], pageName: 'foo');

The onEachSide method allows you to customize the number of pagination links that are displayed before and after the current page link:

{{ $users->onEachSide(5)->links() }}

For a deeper dive into pagination, check out this tip.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert