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.