Skip to content

Commit bed4291

Browse files
authored
Merge pull request #77 from lloricode/fast-paginate
Add support for fast paginate
2 parents f829d8e + 31fb702 commit bed4291

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

config/json-api-paginate.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@
4646
*/
4747
'use_cursor_pagination' => false,
4848

49+
/*
50+
* use simpleFastPaginate() or fastPaginate from https://github.com/hammerstonedev/fast-paginate
51+
* use may installed it via `composer require hammerstone/fast-paginate`
52+
*/
53+
'use_fast_pagination' => false,
54+
4955
/*
5056
* Here you can override the base url to be used in the link items.
5157
*/

src/JsonApiPaginateServiceProvider.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Spatie\JsonApiPaginate;
44

5+
use Composer\InstalledVersions;
56
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
67
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
78
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
@@ -38,7 +39,15 @@ protected function registerMacro()
3839
$paginationParameter = config('json-api-paginate.pagination_parameter');
3940
$paginationMethod = config('json-api-paginate.use_cursor_pagination')
4041
? 'cursorPaginate'
41-
: (config('json-api-paginate.use_simple_pagination') ? 'simplePaginate' : 'paginate');
42+
: (
43+
config('json-api-paginate.use_simple_pagination')
44+
? (config('json-api-paginate.use_fast_pagination') ? 'simpleFastPaginate' : 'simplePaginate')
45+
: (config('json-api-paginate.use_fast_pagination') ? 'fastPaginate' : 'paginate')
46+
);
47+
48+
if (config('json-api-paginate.use_simple_pagination') && !InstalledVersions::isInstalled('hammerstone/fast-paginate')) {
49+
abort(500, 'You need to install hammerstone/fast-paginate to use fast pagination.');
50+
}
4251

4352
$size = (int) request()->input($paginationParameter.'.'.$sizeParameter, $defaultSize);
4453
$cursor = (string) request()->input($paginationParameter.'.'.$cursorParameter);

0 commit comments

Comments
 (0)