You are here

public function Translate::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/Translate.php, line 75

Class

Translate
Plugin annotation @GraphQLField( id = "url_translate", secure = true, name = "translate", description = @Translation("The translated url object."), type = "Url", parents = {"Url"}, arguments = { "language" = "LanguageId!" }, …

Namespace

Drupal\graphql_core\Plugin\GraphQL\Fields\Routing

Code

public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
  if ($value instanceof Url) {
    $language = $this->languageManager
      ->getLanguage($args['language']);
    $url = clone $value;

    // The routed path is cached in the original object. Clear it.
    if ($url
      ->isRouted() && $url
      ->getOption('routed_path')) {
      $url
        ->setOption('routed_path', NULL);
    }
    (yield $url
      ->setOption('language', $language));
  }
}