According to the documentation executing an EntityFieldQuery should fill an array called EntityFieldQuery::$orderedResults:
After executing the query, $this->orderedResults will contain a list of the same stub entities in the order returned by the query. This is only relevant if there are multiple entity types in the returned value and a field ordering was requested. In every other case, the returned value contains everything necessary for processing.
see https://api.drupal.org/api/drupal/includes!entity.inc/function/EntityFieldQuery%3A%3Aexecute/7
see https://api.drupal.org/api/drupal/includes!entity.inc/property/EntityFieldQuery%3A%3AorderedResults/7
But this array is always empty caused by simply typo. Function finishQuery stores the results in $this->ordered_results instead of $this->orderedResults:
<?php
class EntityFieldQuery {
public $orderedResults = array();
function finishQuery($select_query, $id_key = 'entity_id') {
foreach ($select_query->execute() as $partial_entity) {
$this->ordered_results[] = $partial_entity;
}
}
}
?>
I attached a patch that fixes the typo and ensures fresh orderedResults on each execution.
Attachment | Size | Status | Test result | Operations |
---|---|---|---|---|
orderedResults.patch | 830 bytes | Idle | PASSED: [[SimpleTest]]: [MySQL] 40,046 pass(es). | View details | Re-test |