我有一些Laravel模型,它们是通过一个关系表中的一个AboutToMany关系来关联的。
现在,我尝试在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 表中(并抱怨Program.name没有默认值)。
但是,我想将数据(course_id,year_id和program_id)插入 Course_Program 表中。
如何告诉Laravel Lighthouse在数据透视表中插入数据?
答案 0 :(得分:1)
当前没有数据透视表数据,但是上周我进行了PR。您可以follow the PR progress
通常,它将以我的方式包括在内,或者可能有所不同。是discussed in this issue
目前,您只能使用自定义解析器/指令来更新数据透视表数据。但是,最好的方法可能就是等到PR合并。
答案 1 :(得分:0)
有什么方法可以通过嵌套突变对数据进行更新/更新?