aneeskhan47/laravel-pagination-merge

Merge multiple laravel paginate instances
26,827 17
Install
composer require aneeskhan47/laravel-pagination-merge
Latest Version:v1.0.8
PHP:^7.2|^8.0|^8.1|^8.2|^8.3
License:MIT
Last Updated:Apr 2, 2026
Links: GitHub  ·  Packagist
Maintainer: aneeskhan47

Pagination Merge for Laravel 5/6/7/8/9/10/11/12/13

Latest Version on Packagist Total Downloads GitHub Code Style Action Status Laravel Versions

A simple Laravel pagination merge package that allows you to merge multiple ->paginate() instances.

Some Background

I had to deal with something like that in a project I was working on, where in one of the pages I had to display two types of publication paginated and sorted by the created_at field. In my case, it was a Post model and an Event Model (hereinafter referred to as publications).

The only difference is I didn't want to get all the publications from the database and then merge and sort the results, as you can imagine it would rise a performance issue if we have hundreds of publications.

So I figure out that it would be more convenient to paginate each model and only then, merge and sort them. that's why I built this package.

This package is heavily inspired by this stackoverflow answer

⚡️ Installation

For Laravel 5.5+

Require this package with composer:

composer require aneeskhan47/laravel-pagination-merge

The service provider will be auto-discovered. You do not need to add the provider anywhere.

For Laravel 5.0 to 5.4

Require this package with composer:

composer require aneeskhan47/laravel-pagination-merge

Find the providers key in config/app.php and register the PaginationMerge Service Provider.

'providers' => [
    // ...
    Aneeskhan47\PaginationMerge\PaginationMergeServiceProvider::class,
]

Find the aliases key in config/app.php and register the PaginationMerge alias.

'aliases' => [
    // ...
    'PaginationMerge' => Aneeskhan47\PaginationMerge\Facades\PaginationMerge::class,
]

🚀 Usage

use App\Models\Post;
use App\Models\Event;
use Aneeskhan47\PaginationMerge\Facades\PaginationMerge;


class PublicationsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $events = Event::latest()->paginate(5);
        $posts = Post::latest()->paginate(5);

        $publications = PaginationMerge::merge($events, $posts)
                                       ->sortByDesc('created_at')
                                       ->get();

        // since get() will return \Illuminate\Pagination\LengthAwarePaginator
        // you can continue using paginator methods like these etc:

        $publications->withPath('/admin/users')
                     ->appends(['sort' => 'votes'])
                     ->withQueryString()
                     ->fragment('users')
                     ->setPageName('publications_page');

        return view('publications.index', compact('publications'));
    }
}

💰 Support the development

Do you like this package? Support it by donating

🧪 Testing

composer test

📝 Changelog

Please see CHANGELOG for more information on what has changed recently.

🤝 Contributing

Please see CONTRIBUTING for details.

🔒 Security

If you discover any security-related issues, please email kingkhan2388@gmail.com instead of using the issue tracker.

🙌 Credits

📜 License

The MIT License (MIT). Please see License File for more information.

🔧 Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

641,106,524 9,700
laravel/framework

The Laravel Framework.

593,882,149 34,959
laravel/tinker

Powerful REPL for the Laravel framework.

502,645,077 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

418,291,778 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
v1.0.8 ^7.2|^8.0|^8.1|^8.2|^8.3 ~5|^6|^7|^8|^9|^10|^11.0|^12.0|^13.0 MIT
v1.0.7 ^7.2|^8.0|^8.1|^8.2 ~5|^6|^7|^8|^9|^10|^11.0|^12.0 MIT
v1.0.6 ^7.2|^8.0|^8.1|^8.2 ~5|^6|^7|^8|^9|^10|^11.0 MIT
v1.0.5 ^7.2|^8.0|^8.1|^8.2 ~5|^6|^7|^8|^9|^10 MIT
v1.0.4 ^7.2|^8.0|^8.1|^8.2 ~5|^6|^7|^8|^9 MIT