You are here

protected function QueryBase::initializePager in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Entity/Query/QueryBase.php \Drupal\Core\Entity\Query\QueryBase::initializePager()

Gets the total number of results and initialize a pager for the query.

The pager can be disabled by either setting the pager limit to 0, or by setting this query to be a count query.

3 calls to QueryBase::initializePager()
Query::execute in core/lib/Drupal/Core/Config/Entity/Query/Query.php
Execute the query.
Query::execute in core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php
Execute the query.
Query::finish in core/lib/Drupal/Core/Entity/Query/Sql/Query.php
Finish the query by adding fields, GROUP BY and range.

File

core/lib/Drupal/Core/Entity/Query/QueryBase.php, line 311

Class

QueryBase
The base entity query class.

Namespace

Drupal\Core\Entity\Query

Code

protected function initializePager() {
  if ($this->pager && !empty($this->pager['limit']) && !$this->count) {
    $page = \Drupal::service('pager.parameters')
      ->findPage($this->pager['element']);
    $count_query = clone $this;
    $this->pager['total'] = $count_query
      ->count()
      ->execute();
    $this->pager['start'] = $page * $this->pager['limit'];
    \Drupal::service('pager.manager')
      ->createPager($this->pager['total'], $this->pager['limit'], $this->pager['element']);
    $this
      ->range($this->pager['start'], $this->pager['limit']);
  }
}