【问题标题】:Lighthouse nested delete mutation is not worked灯塔嵌套删除突变不起作用
【发布时间】: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 之间的关系

标签: laravel-lighthouse


【解决方案1】:

只需像下面这样传递 id,关系就会被删除!

input bRelationInput {

delete: ID 

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2021-11-20
    • 2020-08-18
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2019-11-21
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多