laravel 在GraphQl查询中使用空间角色库(Rebing)总是返回NULL

q3qa4bjr  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(72)
我使用的文件:
<?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;
GraphQl UserRolesQuery文件:
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)
    {
希望返回用户角色名的Resolve函数
$user = User::find($args['id']);
        $result =  $user->getRoleNames();
        return $result;

    }

}
我希望$user->getRoleNames();返回用户角色名称..但它总是返回NULL
s5a0g9ez

s5a0g9ez1#

$user->getRoleNames();

此函数返回集合,如果只想获取角色名称,则必须更改返回类型

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

也在解决

$result =  $user->getRoleNames()->toArray();

相关问题