Skip to content

Commit ceba11e

Browse files
committed
Add withQueryString method to paginator
1 parent e9f3c95 commit ceba11e

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

src/Illuminate/Pagination/AbstractPaginator.php

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Illuminate\Pagination;
44

55
use Closure;
6-
use Illuminate\Contracts\Support\Htmlable;
76
use Illuminate\Support\Arr;
8-
use Illuminate\Support\Collection;
97
use Illuminate\Support\Str;
8+
use Illuminate\Support\Collection;
9+
use Illuminate\Contracts\Support\Htmlable;
1010
use Illuminate\Support\Traits\ForwardsCalls;
1111

1212
/**
@@ -100,6 +100,13 @@ abstract class AbstractPaginator implements Htmlable
100100
*/
101101
protected static $viewFactoryResolver;
102102

103+
/**
104+
* The with query string resolver callback.
105+
*
106+
* @var \Closure
107+
*/
108+
protected static $queryStringResolver;
109+
103110
/**
104111
* The default pagination view.
105112
*
@@ -215,6 +222,20 @@ public function appends($key, $value = null)
215222
return $this->addQuery($key, $value);
216223
}
217224

225+
/**
226+
* Add a set of query string values to the paginator.
227+
*
228+
* @return $this
229+
*/
230+
public function withQueryString()
231+
{
232+
if (isset(static::$queryStringResolver)) {
233+
return $this->appends(call_user_func(static::$queryStringResolver));
234+
}
235+
236+
return $this;
237+
}
238+
218239
/**
219240
* Add an array of query string values.
220241
*
@@ -484,6 +505,17 @@ public static function viewFactoryResolver(Closure $resolver)
484505
static::$viewFactoryResolver = $resolver;
485506
}
486507

508+
/**
509+
* Set with query string resolver callback.
510+
*
511+
* @param \Closure $resolver
512+
* @return void
513+
*/
514+
public static function withQueryStringResolver(Closure $resolver)
515+
{
516+
static::$queryStringResolver = $resolver;
517+
}
518+
487519
/**
488520
* Set the default pagination view.
489521
*

src/Illuminate/Pagination/PaginationServiceProvider.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,9 @@ public function register()
4646

4747
return 1;
4848
});
49+
50+
Paginator::withQueryStringResolver(function () {
51+
return $this->app['request']->query();
52+
});
4953
}
5054
}

0 commit comments

Comments
 (0)