如何将 `user_id` 分配给 Laravel's Lighthouse 中新创建的记录?

How to assign an `user_id` to a newly created record in Laravel's Lighthouse?

Laravel 的 Lighthouse 具有直接在数据库上执行数据修改 CRUD 操作的指令:@create@delete@update.

一个简单的 CRUD 的创建可以这样实现:

type Mutation {
  createPost(title: String!): Post @create
}

这有效,但它创建的记录没有所有者。我的问题是:如何将 user_id 分配给新创建的记录?

我的意思是,无需使用解析器。

我可以添加一个 user_id 参数,如下所示:

type Mutation {
  createPost(user_id: ID, title: String!): Post @create
}

但这会导致巨大的安全问题 - 任何人都可以添加或更改其他用户的记录。

您可以使用 @inject 指令,例如 @inject(context: "user.id", name: "user_id")

或者,您可以在您的模型上使用观察器,并使用 auth()->id();

保存 user_id