getFieldSelection() public method

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();
 }