如何解决如何将当前时间戳放在服务器端的 GraphQL 突变模式中?
当用户取消订单时,我需要将当前时间戳放入变异查询中。 它应该在服务器端(因为依赖客户端的数据是不行的)。
这是我的 Laravel Lighthouse GraphQL 架构中的一个简单变化:
type Mutation {
cancelOrder(id: ID!,canceled_at: DateTime = "2021-02-19 12:00:00"): Order @update
}
如何使用某种 Now() 函数结果更改此硬编码时间戳?像这样:
cancelOrder(id: ID!,canceled_at: DateTime = current_timestamp): Order @update
解决方法
我会创建一个像 php artisan lighthouse:mutation Order
这样的自定义突变,然后在我的架构上删除 @update
并放置 @field(resolver: "App\\GraphQL\\Mutations\\Order@cancel")
,然后在类 Order 上这样做:
namespace App\GraphQL\Mutations;
class Order
{
/**
* @param null $_
* @param array<string,mixed> $args
*/
public function cancel($_,array $args)
{
$order = Order::findOrFail($args['id']);
$order->canceled_at = now();
$order->save();
return $order;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。