Presentation

Pagination

Paginator component for array and QueryBuilder data sources with immutable paging state.

Purpose

Pagination standardizes page resolution, URL generation and rendering for list views. It separates data slicing from visual output.

Core API

Use fromQueryBuilder() for database-backed lists and fromArray() for in-memory lists. Render either PaginationResult or PaginationState through render().

$result = $component->pagination()->fromQueryBuilder(
    builder: $articleModel->publishedArticlesQuery(),
    perPage: 12,
    pageName: 'articles_page',
);

$items = $result->items();
echo $component->pagination()->render($result);

Configuration

Behavior is controlled by PaginationConfigDefinition, including default/max per-page limits, visible page count, first/last buttons and the CSS class map.

Multiple paginators

Use distinct pageName values per block (articles_page, users_page, ...) to prevent URL query collisions on pages with multiple paginated sections.