function EntityFieldQuery::queryCallback
Determines the query callback to use for this entity query.
Return value
A callback that can be used with call_user_func().
1 call to EntityFieldQuery::queryCallback()
- EntityFieldQuery::execute in includes/
entity.inc - Executes the query.
File
-
includes/
entity.inc, line 1230
Class
- EntityFieldQuery
- Retrieves entities matching a given set of conditions.
Code
public function queryCallback() {
// Use the override from $this->executeCallback. It can be set either
// while building the query, or using hook_entity_query_alter().
if (function_exists($this->executeCallback)) {
return $this->executeCallback;
}
// If there are no field conditions and sorts, and no execute callback
// then we default to querying entity tables in SQL.
if (empty($this->fields)) {
return array(
$this,
'propertyQuery',
);
}
// If no override, find the storage engine to be used.
foreach ($this->fields as $field) {
if (!isset($storage)) {
$storage = $field['storage']['module'];
}
elseif ($storage != $field['storage']['module']) {
throw new EntityFieldQueryException(t("Can't handle more than one field storage engine"));
}
}
if ($storage) {
// Use hook_field_storage_query() from the field storage.
return $storage . '_field_storage_query';
}
else {
throw new EntityFieldQueryException(t("Field storage engine not found."));
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.