aneeskhan47/laravel-pagination-merge
最新稳定版本:v1.0.7
Composer 安装命令:
composer require aneeskhan47/laravel-pagination-merge
包简介
Merge multiple laravel paginate instances
README 文档
README
Pagination Merge for Laravel 5/6/7/8/9/10/11/12
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
- PayPal: Donate
???? 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.
统计信息
- 总下载量: 22.08k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 18
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04