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 pagination.default_per_page, pagination.max_per_page, pagination.visible_pages, pagination.show_first_last and CSS map pagination.classes.

Multiple paginators

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