query AppHomeRoute{viewer{id,..._0c28183ce}} fragment _0c28183ce on Viewer{id,profile{firstName,id,locations{id}}}
Example:
query MyQuery{
{
root {
id,
nested {
nested1
nested2 {
nested3
}
}
}
}
Given this ResolveInfo instance is a part of "root" field resolution, and $depth === 1, method will return:
[
'id' => true,
'nested' => [
nested1 => true,
nested2 => true
]
]
public getFieldSelection ( integer $depth ) : array | ||
$depth | integer | How many levels to include in output |
return | array |
/** * Select only certain fields on queries instead of all fields. * * @param ResolveInfo $info * @return array */ protected function getSelectFields(ResolveInfo $info) { $camel = config('relay.camel_case'); $fields = array_get($info->getFieldSelection(2), 'edges.node'); return collect($fields)->reject(function ($value) { is_array($value); })->keys()->transform(function ($value) use($camel) { return $camel ? snake_case($value) : $value; })->toArray(); }
/** * Select only certain fields on queries instead of all fields. * * @param ResolveInfo $info * @return array */ protected function getSelectFields(ResolveInfo $info) { $camel = config('relay.camel_case'); return collect($info->getFieldSelection(4)['edges']['node'])->reject(function ($value) { is_array($value); })->keys()->transform(function ($value) use($camel) { if ($camel) { return snake_case($value); } return $value; })->toArray(); }