function Query::execute

Same name in this branch
  1. 9 core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query::execute()
  2. 9 core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query::execute()
  3. 9 core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query::execute()
  4. 9 core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query::execute()
Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query::execute()
  2. 11.x core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query::execute()
  3. 11.x core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query::execute()
  4. 11.x core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query::execute()
  5. 11.x core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query::execute()
  6. 7.x includes/database/query.inc \Query::execute()
  7. 10 core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query::execute()
  8. 10 core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query::execute()
  9. 10 core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query::execute()
  10. 10 core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query::execute()
  11. 10 core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query::execute()
  12. 8.9.x core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query::execute()
  13. 8.9.x core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query::execute()
  14. 8.9.x core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query::execute()
  15. 8.9.x core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query::execute()
  16. 8.9.x core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query::execute()

File

core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php, line 42

Class

Query
Defines the entity query for entities stored in a key value backend.

Namespace

Drupal\Core\Entity\KeyValueStore\Query

Code

public function execute() {
  // Load the relevant records.
  $records = $this->keyValueFactory
    ->get('entity_storage__' . $this->entityTypeId)
    ->getAll();
  // Apply conditions.
  $result = $this->condition
    ->compile($records);
  // Apply sort settings.
  foreach ($this->sort as $sort) {
    $direction = $sort['direction'] == 'ASC' ? -1 : 1;
    $field = $sort['field'];
    uasort($result, function ($a, $b) use ($field, $direction) {
      return $a[$field] <= $b[$field] ? $direction : -$direction;
    });
  }
  // Let the pager do its work.
  $this->initializePager();
  if ($this->range) {
    $result = array_slice($result, $this->range['start'], $this->range['length'], TRUE);
  }
  if ($this->count) {
    return count($result);
  }
  // Create the expected structure of entity_id => entity_id.
  $entity_ids = array_keys($result);
  return array_combine($entity_ids, $entity_ids);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.