protected function 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.

2 calls to QueryBase::initializePager()
Query::execute in drupal/core/lib/Drupal/Core/Config/Entity/Query/Query.php
Implements \Drupal\Core\Entity\Query\QueryInterface::execute().
Query::finish in drupal/core/modules/field_sql_storage/lib/Drupal/field_sql_storage/Entity/Query.php
Finish the query by adding fields, GROUP BY and range.

File

drupal/core/lib/Drupal/Core/Entity/Query/QueryBase.php, line 249
Contains \Drupal\Core\Entity\Query\QueryBase.

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 = pager_find_page($this->pager['element']);
    $count_query = clone $this;
    $this->pager['total'] = $count_query
      ->count()
      ->execute();
    $this->pager['start'] = $page * $this->pager['limit'];
    pager_default_initialize($this->pager['total'], $this->pager['limit'], $this->pager['element']);
    $this
      ->range($this->pager['start'], $this->pager['limit']);
  }
}