如何将 `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
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();