PaginationState.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Illuminate\Pagination;
  3. class PaginationState
  4. {
  5. /**
  6. * Bind the pagination state resolvers using the given application container as a base.
  7. *
  8. * @param \Illuminate\Contracts\Foundation\Application $app
  9. * @return void
  10. */
  11. public static function resolveUsing($app)
  12. {
  13. Paginator::viewFactoryResolver(fn () => $app['view']);
  14. Paginator::currentPathResolver(fn () => $app['request']->url());
  15. Paginator::currentPageResolver(function ($pageName = 'page') use ($app) {
  16. $page = $app['request']->input($pageName);
  17. if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) {
  18. return (int) $page;
  19. }
  20. return 1;
  21. });
  22. Paginator::queryStringResolver(fn () => $app['request']->query());
  23. CursorPaginator::currentCursorResolver(function ($cursorName = 'cursor') use ($app) {
  24. return Cursor::fromEncoded($app['request']->input($cursorName));
  25. });
  26. }
  27. }