【发布时间】:2020-04-08 12:36:27
【问题描述】:
我尝试过嵌套删除突变。但它不起作用。
但我不知道为什么它不起作用。
我有桌子A and B。
A的一个数据可以有B的很多数据
所以在A模型内部,我写如下关系。
public function bRelation(): HasMany
{
return $this->hasMany('App\Models\A', 'A_id', 'id');
}
这不是真实的,而是我的架构的缩写版本。
extend type Mutation {
createA(input: AInput@spread): A@create
updateA(input: AInput@spread): A@update
deleteA(input: AInput! @spread): A@delete
}
input AInput{
id: ID
bRelation : bRelationInput
}
input bRelationInput{
create: [bInput]
update: [bInput]
delete: [ID!]
}
input bInput {
id: ID
}
我第一次使用如下邮递员。
删除表A中id为35的数据。但是表b的数据并没有被删除。
即使我改变了架构和数据,如下所示。 结果是一样的。 b 数据不会被删除
input bRelationInput{
create: [bInput]
update: [bInput]
delete: Boolean
}
我做错了什么..??
【问题讨论】:
-
我认为命名可能有点混乱,但在 HasMany 关系中,您删除的是关系,而不是相关模型本身。因此,在每个
B模型中,您只需将与 A 相关的外键设置为 null。如果你想删除一个 B 模型,只需为其创建另一个突变。 -
@Enzo 删除关系的意思是..结果是否正确?所以它不会删除B的真实数据?
-
对不起,我不明白你的意思......但是,它不会删除 B 的真实数据,它只是“断开”A 和 B 之间的关系