function Query::execute

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

Overrides QueryInterface::execute

File

core/lib/Drupal/Core/Config/Entity/Query/Query.php, line 80

Class

Query
Defines the entity query for configuration entities.

Namespace

Drupal\Core\Config\Entity\Query

Code

public function execute() {
    // Invoke entity query alter hooks.
    $this->alter();
    // Load the relevant config records.
    $configs = $this->loadRecords();
    // Apply conditions.
    $result = $this->condition
        ->compile($configs);
    // 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) {
            $properties = explode('.', $field);
            foreach ($properties as $property) {
                if (isset($a[$property]) || isset($b[$property])) {
                    $a = $a[$property] ?? NULL;
                    $b = $b[$property] ?? NULL;
                }
            }
            return $a <= $b ? $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. Config
    // entities have string entity IDs.
    foreach ($result as $key => &$value) {
        $value = (string) $key;
    }
    return $result;
}

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