Laravel GraphQL之Mutation

本文介绍如何使用Laravel框架的GraphQL扩展创建一个名为UpdateUserMutation的突变,用于更新用户信息。通过定义输入参数和返回类型,实现用户数据的更新操作。

首先通过artisan命令快速创建一个Muatation

php artisan make:graphql:mutation UpdateUserMutation

返回类型

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

UpdateUserMutation.php

<?php

namespace App\GraphQL\Mutation;

use Folklore\GraphQL\Support\Mutation;
use GraphQL\Type\Definition\ResolveInfo;
use GraphQL\Type\Definition\Type;
use GraphQL;
use App\User;

class UpdateUserMutation extends Mutation
{
    protected $attributes = [
        'name' => 'UpdateUserMutation',
        'description' => 'A mutation'
    ];

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

    public function args()
    {
        return [
            'id'=>['name'=>'id','type'=>Type::nonNull(Type::int())],
            'userAccount'=>['name'=>'userAccount','type'=>Type::nonNull(Type::string())],
            'userPass'=>['name'=>'userPass','type'=>Type::nonNull(Type::string())],
            'email'=>['name'=>'email','type'=>Type::nonNull(Type::string())]
        ];
    }

    public function resolve($root, $args, $context, ResolveInfo $info)
    {
        $user=User::find($args['id']);

        if(!$user)
        {
            return null;
        }

        $user->userAccount=$args['userAccount'];

        $user->userPass=$args['userPass'];

        $user->email=$args['email'];

        $user->save();

        return $user;
    }
}

在配置文件 config/graphql.php 中新增变更配置:

'schemas' => [
        'default' => [
            'query' => [

            ],
            'mutation' => [
                'updateUser'=>'\App\GraphQL\Mutation\UpdateUserMutation',
            ]
        ]
    ],


然后通过GraphiQL进行测试


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值