public function EntityQueryEntities::resolveValues in GraphQL 8.3
Retrieve the list of field values.
Always returns a list of field values. Even for single value fields. Single/multi field handling is responsibility of the base class.
Parameters
mixed $value: The current object value.
array $args: Field arguments.
$context: The resolve context.
\GraphQL\Type\Definition\ResolveInfo $info: The resolve info object.
Return value
\Generator The value generator.
Overrides FieldPluginBase::resolveValues
File
- modules/
graphql_core/ src/ Plugin/ GraphQL/ Fields/ EntityQuery/ EntityQueryEntities.php, line 106
Class
- EntityQueryEntities
- Retrieve the entity result set of an entity query.
Namespace
Drupal\graphql_core\Plugin\GraphQL\Fields\EntityQueryCode
public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
if ($value instanceof QueryInterface) {
$type = $value
->getEntityTypeId();
$result = $value
->execute();
$metadata = $value
->getMetaData('graphql_context');
if (isset($metadata['ids']) && ($sorting = $metadata['ids'])) {
$sorting = array_flip(array_values($sorting));
uasort($result, function ($a, $b) use ($sorting) {
return $sorting[$a] - $sorting[$b];
});
}
if ($value
->hasTag('revisions')) {
// If this is a revision query, the version ids are the array keys.
return $this
->resolveFromRevisionIds($type, array_keys($result), $metadata, $args, $context, $info);
}
return $this
->resolveFromEntityIds($type, array_values($result), $metadata, $args, $context, $info);
}
}