如何把当前时间戳在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"),然后在类顺序上这样做:

namespace AppGraphQLMutations;
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;
}
}

相关内容

  • 没有找到相关文章

最新更新