Laravel Lighthouse Graphql belongsToMany 具有枢轴值的突变
Laravel Lighthouse Graphql belongsToMany mutation with pivot values
我有一些 Laravel 模型通过 belongsToMany 关系中的枢轴 table 相关。
现在我尝试在 Laravel Lighthouse 中创建一个突变以加入模型并填充枢轴值。
不知怎么的,我不知道该怎么做。
课程模型如下所示:
class Course extends Model
{
public function programs(): BelongsToMany
{
return $this->belongsToMany(\App\Models\Program::class, 'Course_Program')
->withPivot('id', 'year_id')
->withTimestamps();
}
}
我的 GraphQL 代码如下所示:
type Mutation {
createCourse(input: CreateCourseInput! @spread): Course! @create
}
type Course {
id: ID!
name: String!
programs: [ProgramWithPivot!]! @belongsToMany
}
type Program {
id: ID!
name: String!
}
type ProgramWithPivot {
id: ID!
name: String!
year_id: ID!
}
input CreateCourseInput {
name: String!
programs: CreateCourseProgramsRelation!
}
input CreateCourseProgramsRelation {
create: [CreateCourseProgramInput!]
}
input CreateCourseProgramInput {
id: ID!
year_id: ID!
}
问题是当我尝试在我的课程中创建这样的程序时:
mutation {
createCourse(input: {
name: "new cours"
programs: {
create: [{
id: 1
year_id: 2
}]
}
}) {
id
programs {
id
year_id
}
}
}
Laravel Lighthouse 尝试将数据插入 Program table(并抱怨 Program.name 没有默认值)。
但是,我想将数据(course_id、year_id 和 program_id)插入 Course_Program table.
如何告诉 Laravel Lighthouse 在数据透视表中插入数据-table?
当前不存在变异数据透视表,但我上周为此做了一个 PR。你可以follow the PR progress
一般来说,它会按照我做的方式包含在内,或者可能会有点不同。这是discussed in this issue
目前您只能使用自定义 resolver/directive 更新数据透视表数据。但可能最好的方法就是等到 PR 合并。
有什么方法可以通过嵌套突变对数据透视表进行更新/更新插入?
我有一些 Laravel 模型通过 belongsToMany 关系中的枢轴 table 相关。
现在我尝试在 Laravel Lighthouse 中创建一个突变以加入模型并填充枢轴值。
不知怎么的,我不知道该怎么做。
课程模型如下所示:
class Course extends Model
{
public function programs(): BelongsToMany
{
return $this->belongsToMany(\App\Models\Program::class, 'Course_Program')
->withPivot('id', 'year_id')
->withTimestamps();
}
}
我的 GraphQL 代码如下所示:
type Mutation {
createCourse(input: CreateCourseInput! @spread): Course! @create
}
type Course {
id: ID!
name: String!
programs: [ProgramWithPivot!]! @belongsToMany
}
type Program {
id: ID!
name: String!
}
type ProgramWithPivot {
id: ID!
name: String!
year_id: ID!
}
input CreateCourseInput {
name: String!
programs: CreateCourseProgramsRelation!
}
input CreateCourseProgramsRelation {
create: [CreateCourseProgramInput!]
}
input CreateCourseProgramInput {
id: ID!
year_id: ID!
}
问题是当我尝试在我的课程中创建这样的程序时:
mutation {
createCourse(input: {
name: "new cours"
programs: {
create: [{
id: 1
year_id: 2
}]
}
}) {
id
programs {
id
year_id
}
}
}
Laravel Lighthouse 尝试将数据插入 Program table(并抱怨 Program.name 没有默认值)。
但是,我想将数据(course_id、year_id 和 program_id)插入 Course_Program table.
如何告诉 Laravel Lighthouse 在数据透视表中插入数据-table?
当前不存在变异数据透视表,但我上周为此做了一个 PR。你可以follow the PR progress
一般来说,它会按照我做的方式包含在内,或者可能会有点不同。这是discussed in this issue
目前您只能使用自定义 resolver/directive 更新数据透视表数据。但可能最好的方法就是等到 PR 合并。
有什么方法可以通过嵌套突变对数据透视表进行更新/更新插入?