You are here

public function Alias::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/InternalUrl/Alias.php, line 74

Class

Alias
Plugin annotation @GraphQLField( id = "internal_url_path_alias", secure = true, name = "pathAlias", description = @Translation("The url's path alias if any."), response_cache_contexts = {"languages:language_url"}, type = "String", …

Namespace

Drupal\graphql_core\Plugin\GraphQL\Fields\Routing\InternalUrl

Code

public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
  if ($value instanceof Url) {
    $internal = "/{$value->getInternalPath()}";
    $alias = $this->aliasManager
      ->getAliasByPath($internal);

    // If the fetched alias is identical to the internal path, it means we do
    // not have a configured alias for this path.
    if ($internal !== $alias) {
      (yield $alias);
    }
  }
}