0
The Files I'm Using :
<?php

namespace App\GraphQl\Query\User;

use App\GraphQl\Traits\UserTrait;
use App\Models\User;

use GraphQL\Type\Definition\ResolveInfo;
use Rebing\GraphQL\Support\Facades\GraphQL;
use GraphQL\Type\Definition\Type;
use Rebing\GraphQL\Support\Query;


The GraphQl UserRolesQuery File :
use Closure;


class UserRolesQuery extends Query
{
    use UserTrait;

    protected $attributes = [
        'name' => 'user',
    ];

    public function type(): Type
    {
        return GraphQL::type('UserType');
    }

    public function args(): array
    {
        return [
            'id' => [
                'name' => 'id',
                'type' => Type::int(),
//                'rules' => ['required'] validation
            ],


        ];
    }

    public function resolve($root, array $args, $context, ResolveInfo $resolveInfo, Closure $getSelectFields)
    {
The Resolve Function Where I Expect To Return User Role Names
        $user = User::find($args['id']);
        $result =  $user->getRoleNames();
        return $result;


    }

}

I Expect The $user->getRoleNames(); To Return The User Roles Name .. But it always returns NULL
apokryfos
  • 38,771
  • 9
  • 70
  • 114

1 Answers1

0
$user->getRoleNames();

this function return Collection and if you want just get role names , you must change return type

public function type():Type
{
    return Type::listOf(Type::string());
}

also in resolve

$result =  $user->getRoleNames()->toArray();
Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129