homepage >> How to transform array into Laravel p    
 

Yossef Benharosh is an apt web developer and the author of the eBook The essentials of object oriented PHP.

Yossef Benharosh web developer profile linkedin twitter github

How to transform array into Laravel paginated list?

In Laravel, you can easily paginate an array of objects using the `Paginator` class provided by Laravel. Here's a step-by-step guide on how to paginate an array of objects in a Laravel application.

Assuming you have an array of objects, such as:

$items = [
    (object)['name' => 'Item 1'],
    (object)['name' => 'Item 2'],
    (object)['name' => 'Item 3'],
    // ... more objects
];

 

You can paginate this array using Laravel's `Paginator` like this:

  1. Use the `collect` helper function to create a collection from your array of objects.

    $collection = collect($items);
  2. Use the `paginate` method on the collection to create a paginated result. You can specify the number of items per page, such as 10:

    $perPage = 10;
    $currentPage = request()->get('page', 1); // Get the current page from the request, default to 1
    
    $paginatedItems = $collection->slice(($currentPage - 1) * $perPage, $perPage)->all();
    
    $paginatedData = new \Illuminate\Pagination\LengthAwarePaginator(
        $paginatedItems,
        count($collection),
        $perPage,
        $currentPage
    );

    In the code above:

    • `slice` is used to get a portion of the collection that corresponds to the current page.
    • `LengthAwarePaginator` is used to create a paginator instance. You need to provide the paginated items, the total count of items in the collection, the number of items per page, and the current page.
  3. You can then pass the `$paginatedData` to your view and use it in your Blade template for pagination:

    @foreach($paginatedData as $item)
        {{-- Display your items here --}}
        

    {{ $item->name }}

    @endforeach {{ $paginatedData->setPath('/my_page.php')->links() }}
    • This code will display the paginated items and provide links to navigate between sub pages of `my_page.php`.

That's it! You've successfully paginated an array of objects in Laravel.