master

laravel/framework

Last updated at: 29/12/2023 09:21

CursorPaginator.php

TLDR

This file defines the CursorPaginator interface, which provides methods for paginating and rendering data using cursor-based pagination.

Methods

url($cursor)

This method returns the URL for a given cursor.

appends($key, $value = null)

This method adds a set of query string values to the paginator.

fragment($fragment = null)

This method gets or sets the URL fragment to be appended to URLs.

withQueryString()

This method adds all current query string values to the paginator.

previousPageUrl()

This method returns the URL for the previous page, or null.

nextPageUrl()

This method returns the URL for the next page, or null.

items()

This method returns an array of all the items being paginated.

previousCursor()

This method returns the "cursor" of the previous set of items.

nextCursor()

This method returns the "cursor" of the next set of items.

perPage()

This method returns the number of items being shown per page.

cursor()

This method returns the current cursor being paginated.

hasPages()

This method determines if there are enough items to split into multiple pages.

path()

This method returns the base path for paginator generated URLs.

isEmpty()

This method determines if the list of items is empty or not.

isNotEmpty()

This method determines if the list of items is not empty.

render($view = null, $data = [])

This method renders the paginator using a given view.

<?php

namespace Illuminate\Contracts\Pagination;

interface CursorPaginator
{
    /**
     * Get the URL for a given cursor.
     *
     * @param  \Illuminate\Pagination\Cursor|null  $cursor
     * @return string
     */
    public function url($cursor);

    /**
     * Add a set of query string values to the paginator.
     *
     * @param  array|string|null  $key
     * @param  string|null  $value
     * @return $this
     */
    public function appends($key, $value = null);

    /**
     * Get / set the URL fragment to be appended to URLs.
     *
     * @param  string|null  $fragment
     * @return $this|string|null
     */
    public function fragment($fragment = null);

    /**
     * Add all current query string values to the paginator.
     *
     * @return $this
     */
    public function withQueryString();

    /**
     * Get the URL for the previous page, or null.
     *
     * @return string|null
     */
    public function previousPageUrl();

    /**
     * The URL for the next page, or null.
     *
     * @return string|null
     */
    public function nextPageUrl();

    /**
     * Get all of the items being paginated.
     *
     * @return array
     */
    public function items();

    /**
     * Get the "cursor" of the previous set of items.
     *
     * @return \Illuminate\Pagination\Cursor|null
     */
    public function previousCursor();

    /**
     * Get the "cursor" of the next set of items.
     *
     * @return \Illuminate\Pagination\Cursor|null
     */
    public function nextCursor();

    /**
     * Determine how many items are being shown per page.
     *
     * @return int
     */
    public function perPage();

    /**
     * Get the current cursor being paginated.
     *
     * @return \Illuminate\Pagination\Cursor|null
     */
    public function cursor();

    /**
     * Determine if there are enough items to split into multiple pages.
     *
     * @return bool
     */
    public function hasPages();

    /**
     * Get the base path for paginator generated URLs.
     *
     * @return string|null
     */
    public function path();

    /**
     * Determine if the list of items is empty or not.
     *
     * @return bool
     */
    public function isEmpty();

    /**
     * Determine if the list of items is not empty.
     *
     * @return bool
     */
    public function isNotEmpty();

    /**
     * Render the paginator using a given view.
     *
     * @param  string|null  $view
     * @param  array  $data
     * @return string
     */
    public function render($view = null, $data = []);
}