abstract class AbstractCursorPaginator implements Htmlable, Stringable mixin TKey,

Traits

Properties

protected bool $hasMore

Indicates whether there are more items in the data source.

protected TValue> $items

All of the items being paginated.

protected int $perPage

The number of items to be shown per page.

protected string $path

The base path to assign to all URLs.

protected array<string, mixed> $query

The query parameters to add to all URLs.

protected string|null $fragment

The URL fragment to add to all URLs.

protected string $cursorName

The cursor string variable used to store the page.

protected Cursor|null $cursor

The current cursor.

protected array<int, string> $parameters

The paginator parameters for the cursor.

protected array<string, mixed> $options

The paginator options.

static protected Closure|null $currentCursorResolver

The current cursor resolver callback.

Methods

mixed
forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

mixed
forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object, returning $this if the forwarded call returned itself.

static never
throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

mixed
tap(callable|null $callback = null)

Call the given Closure with this instance then return the instance.

from  Tappable
toResourceCollection(string|null $resourceClass = null)

Create a new resource collection instance for the given resource.

guessResourceCollection()

Guess the resource collection for the items.

string|null
resolveResourceFromAttribute(string $class)

Get the resource class from the class attribute.

string|null
resolveResourceCollectionFromAttribute(string $class)

Get the resource collection class from the class attribute.

render(string|null $view = null, array $data = [])

Render the paginator using the given view.

string
url(Cursor|null $cursor)

Get the URL for a given cursor.

string|null
previousPageUrl()

Get the URL for the previous page.

string|null
nextPageUrl()

The URL for the next page, or null.

Cursor|null
previousCursor()

Get the "cursor" that points to the previous set of items.

Cursor|null
nextCursor()

Get the "cursor" that points to the next set of items.

getCursorForItem(array|object $item, bool $isNext = true)

Get a cursor instance for the given item.

array
getParametersForItem(array|object $item)

Get the cursor parameters for a given object.

string|null
getPivotParameterForItem(Model $item, string $parameterName)

Get the cursor parameter value from a pivot model if applicable.

mixed
ensureParameterIsPrimitive(mixed $parameter)

Ensure the parameter is a primitive type.

fragment(string|null $fragment = null)

Get / set the URL fragment to be appended to URLs.

appends(array|string|null $key, string|null $value = null)

Add a set of query string values to the paginator.

appendArray(array $keys)

Add an array of query string values.

withQueryString()

Add all current query string values to the paginator.

addQuery(string $key, mixed $value)

Add a query string value to the paginator.

string
buildFragment()

Build the full fragment portion of a URL.

loadMorph(string $relation, array $relations)

Load a set of relationships onto the mixed relationship collection.

loadMorphCount(string $relation, array $relations)

Load a set of relationship counts onto the mixed relationship collection.

array
items()

Get the slice of items being paginated.

through(callable $callback)

Transform each item in the slice of items using a callback.

int
perPage()

Get the number of items shown per page.

Cursor|null
cursor()

Get the current cursor being paginated.

string
getCursorName()

Get the query string variable used to store the cursor.

setCursorName(string $name)

Set the query string variable used to store the cursor.

withPath(string $path)

Set the base path to assign to all URLs.

setPath(string $path)

Set the base path to assign to all URLs.

string|null
path()

Get the base path for paginator generated URLs.

static Cursor|null
resolveCurrentCursor(string $cursorName = 'cursor', Cursor|null $default = null)

Resolve the current cursor or return the default value.

static void
currentCursorResolver(Closure $resolver)

Set the current cursor resolver callback.

static mixed
viewFactory()

Get an instance of the view factory from the resolver.

static void
flushState()

Flush all static state.

getIterator()

Get an iterator for the items.

bool
isEmpty()

Determine if the list of items is empty.

bool
isNotEmpty()

Determine if the list of items is not empty.

int
count()

Get the number of items for the current page.

getCollection()

Get the paginator's underlying collection.

setCollection(Collection $collection)

Set the paginator's underlying collection.

array
getOptions()

Get the paginator options.

bool
offsetExists(TKey $key)

Determine if the given item exists.

mixed
offsetGet(TKey $key)

Get the item at the given offset.

void
offsetSet(null|TKey $key, TValue $value)

Set the item at the given offset.

void
offsetUnset(TKey $key)

Unset the item at the given key.

string
toHtml()

Render the contents of the paginator to HTML.

mixed
__call(string $method, array $parameters)

Make dynamic calls into the collection.

string
__toString()

Render the contents of the paginator when casting to a string.

Details

in ForwardsCalls at line 22
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in ForwardsCalls at line 52
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object, returning $this if the forwarded call returned itself.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in ForwardsCalls at line 66
static protected never throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

Parameters

string $method

Return Value

never

Exceptions

BadMethodCallException

in Tappable at line 15
mixed tap(callable|null $callback = null)

Call the given Closure with this instance then return the instance.

Parameters

callable|null $callback

Return Value

mixed

ResourceCollection toResourceCollection(string|null $resourceClass = null)

Create a new resource collection instance for the given resource.

Parameters

string|null $resourceClass

Return Value

ResourceCollection

Exceptions

Throwable

protected ResourceCollection guessResourceCollection()

Guess the resource collection for the items.

Return Value

ResourceCollection

Exceptions

Throwable

protected string|null resolveResourceFromAttribute(string $class)

Get the resource class from the class attribute.

Parameters

string $class

Return Value

string|null

protected string|null resolveResourceCollectionFromAttribute(string $class)

Get the resource collection class from the class attribute.

Parameters

string $class

Return Value

string|null

at line 42
abstract Htmlable render(string|null $view = null, array $data = [])

Render the paginator using the given view.

Parameters

string|null $view
array $data

Return Value

Htmlable

at line 110
string url(Cursor|null $cursor)

Get the URL for a given cursor.

Parameters

Cursor|null $cursor

Return Value

string

at line 130
string|null previousPageUrl()

Get the URL for the previous page.

Return Value

string|null

at line 142
string|null nextPageUrl()

The URL for the next page, or null.

Return Value

string|null

at line 154
Cursor|null previousCursor()

Get the "cursor" that points to the previous set of items.

Return Value

Cursor|null

at line 171
Cursor|null nextCursor()

Get the "cursor" that points to the next set of items.

Return Value

Cursor|null

at line 188
Cursor getCursorForItem(array|object $item, bool $isNext = true)

Get a cursor instance for the given item.

Parameters

array|object $item
bool $isNext

Return Value

Cursor

at line 200
array getParametersForItem(array|object $item)

Get the cursor parameters for a given object.

Parameters

array|object $item

Return Value

array

Exceptions

Exception

at line 232
protected string|null getPivotParameterForItem(Model $item, string $parameterName)

Get the cursor parameter value from a pivot model if applicable.

Parameters

Model $item
string $parameterName

Return Value

string|null

at line 252
protected mixed ensureParameterIsPrimitive(mixed $parameter)

Ensure the parameter is a primitive type.

This can resolve issues that arise the developer uses a value object for an attribute.

Parameters

mixed $parameter

Return Value

mixed

at line 264
AbstractCursorPaginator|string|null fragment(string|null $fragment = null)

Get / set the URL fragment to be appended to URLs.

Parameters

string|null $fragment

Return Value

AbstractCursorPaginator|string|null

at line 280
AbstractCursorPaginator appends(array|string|null $key, string|null $value = null)

Add a set of query string values to the paginator.

Parameters

array|string|null $key
string|null $value

Return Value

AbstractCursorPaginator

at line 299
protected AbstractCursorPaginator appendArray(array $keys)

Add an array of query string values.

Parameters

array $keys

Return Value

AbstractCursorPaginator

at line 313
AbstractCursorPaginator withQueryString()

Add all current query string values to the paginator.

at line 327
protected AbstractCursorPaginator addQuery(string $key, mixed $value)

Add a query string value to the paginator.

Parameters

string $key
mixed $value

Return Value

AbstractCursorPaginator

at line 339
protected string buildFragment()

Build the full fragment portion of a URL.

Return Value

string

at line 350
AbstractCursorPaginator loadMorph(string $relation, array $relations)

Load a set of relationships onto the mixed relationship collection.

Parameters

string $relation
array $relations

Return Value

AbstractCursorPaginator

at line 364
AbstractCursorPaginator loadMorphCount(string $relation, array $relations)

Load a set of relationship counts onto the mixed relationship collection.

Parameters

string $relation
array $relations

Return Value

AbstractCursorPaginator

at line 377
array items()

Get the slice of items being paginated.

Return Value

array

at line 392
AbstractCursorPaginator through(callable $callback)

Transform each item in the slice of items using a callback.

Parameters

callable $callback

Return Value

AbstractCursorPaginator

at line 402
int perPage()

Get the number of items shown per page.

Return Value

int

at line 410
Cursor|null cursor()

Get the current cursor being paginated.

Return Value

Cursor|null

at line 418
string getCursorName()

Get the query string variable used to store the cursor.

Return Value

string

at line 428
AbstractCursorPaginator setCursorName(string $name)

Set the query string variable used to store the cursor.

Parameters

string $name

Return Value

AbstractCursorPaginator

at line 440
AbstractCursorPaginator withPath(string $path)

Set the base path to assign to all URLs.

Parameters

string $path

Return Value

AbstractCursorPaginator

at line 450
AbstractCursorPaginator setPath(string $path)

Set the base path to assign to all URLs.

Parameters

string $path

Return Value

AbstractCursorPaginator

at line 460
string|null path()

Get the base path for paginator generated URLs.

Return Value

string|null

at line 468
static Cursor|null resolveCurrentCursor(string $cursorName = 'cursor', Cursor|null $default = null)

Resolve the current cursor or return the default value.

Parameters

string $cursorName
Cursor|null $default

Return Value

Cursor|null

at line 483
static void currentCursorResolver(Closure $resolver)

Set the current cursor resolver callback.

Boot-only. The resolver persists in a static property for the worker lifetime and runs on every subsequent cursor-paginator's cursor lookup.

Parameters

Closure $resolver

Return Value

void

at line 491
static mixed viewFactory()

Get an instance of the view factory from the resolver.

Return Value

mixed

at line 499
static void flushState()

Flush all static state.

Return Value

void

at line 509
Traversable getIterator()

Get an iterator for the items.

Return Value

Traversable

at line 517
bool isEmpty()

Determine if the list of items is empty.

Return Value

bool

at line 525
bool isNotEmpty()

Determine if the list of items is not empty.

Return Value

bool

at line 533
int count()

Get the number of items for the current page.

Return Value

int

at line 543
Collection getCollection()

Get the paginator's underlying collection.

Return Value

Collection

at line 559
AbstractCursorPaginator setCollection(Collection $collection)

Set the paginator's underlying collection.

Parameters

Collection $collection

Return Value

AbstractCursorPaginator

at line 572
array getOptions()

Get the paginator options.

Return Value

array

at line 582
bool offsetExists(TKey $key)

Determine if the given item exists.

Parameters

TKey $key

Return Value

bool

at line 593
mixed offsetGet(TKey $key)

Get the item at the given offset.

Parameters

TKey $key

Return Value

mixed

at line 604
void offsetSet(null|TKey $key, TValue $value)

Set the item at the given offset.

Parameters

null|TKey $key
TValue $value

Return Value

void

at line 614
void offsetUnset(TKey $key)

Unset the item at the given key.

Parameters

TKey $key

Return Value

void

at line 622
string toHtml()

Render the contents of the paginator to HTML.

Return Value

string

at line 634
mixed __call(string $method, array $parameters)

Make dynamic calls into the collection.

Parameters

string $method
array $parameters

Return Value

mixed

at line 642
string __toString()

Render the contents of the paginator when casting to a string.

Return Value

string