You are here

public function RouteEntity::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/Routing/RouteEntity.php, line 107

Class

RouteEntity
Retrieve the current routes entity, if it is an entity route.

Namespace

Drupal\graphql_core\Plugin\GraphQL\Fields\Routing

Code

public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
  if ($value instanceof Url) {
    list(, $type) = explode('.', $value
      ->getRouteName());
    $parameters = $value
      ->getRouteParameters();
    $storage = $this->entityTypeManager
      ->getStorage($type);
    if (!($entity = $storage
      ->load($parameters[$type]))) {
      return $this
        ->resolveMissingEntity($value, $args, $info);
    }
    if ($entity instanceof TranslatableInterface && $entity
      ->isTranslatable()) {
      return $this
        ->resolveEntityTranslation($entity, $value, $args, $info);
    }
    return $this
      ->resolveEntity($entity, $value, $args, $info);
  }
}