public function MenuLinks::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/ Menu/ MenuLinks.php, line 66
Class
- MenuLinks
- Retrieves a menus links.
Namespace
Drupal\graphql_core\Plugin\GraphQL\Fields\MenuCode
public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
if ($value instanceof MenuInterface) {
$tree = $this->menuLinkTree
->load($value
->id(), new MenuTreeParameters());
$manipulators = [
[
'callable' => 'menu.default_tree_manipulators:checkAccess',
],
[
'callable' => 'menu.default_tree_manipulators:generateIndexAndSort',
],
];
foreach (array_filter($this->menuLinkTree
->transform($tree, $manipulators), function (MenuLinkTreeElement $item) {
return $item->link instanceof MenuLinkInterface && $item->link
->isEnabled() && (empty($item->access) || $item->access
->isAllowed());
}) as $branch) {
(yield $branch);
}
}
}