如何为拉拉维尔灯塔中新创建的记录分配"user_id"?



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保存在那里

最新更新