0

我正在尝试将产品对象传递给发票表,所以在我的情况下,我猜它是一对多的,其中一张发票有多个产品。我试图做这样的事情:

架构:

    type Product @model @key(name: "productIDIndex", fields: ["productID"]) {
    id: String!
    name: String!
    handle: String
    description: String
    categories: [String]
    tags: [String]
    images: [Image]
    price: Float
    sellingPrice: Float
    profit: Float
    priceTaxExcl: Int
    priceTaxIncl: Int
    taxRate: Int
    comparedPrice: Int
    quantity: Int
    sku: String
    width: String
    height: String
    depth: String
    weight: String
    extraShippingFee: Int
    active: Boolean
    boughtDate: String
    soldDate: String
    deliveryPrice: Float
    deliveryMwstPrice: Float
    ebayInvoiceNo: Int
    ebayArticleNo: String
    differencePrice: Float
    differenceMwstPrice: Float
    total: Float
    totalMwst: Float
    productID: ID!
}

type Image {
    default: Boolean
    id: String
    url: String
    type: String
}

type Invoice @model {
    id: ID!
    products: [Product] @connection(keyName: "productIDIndex", fields:["id"])
    date: String
}

其中为发票生成的架构我只有 id 和日期作为输入,但我还需要编写产品对象。

为 CreateInvoiceInput 生成的架构:

input CreateInvoiceInput {
  id: ID
  date: String
}

我试图将产品作为请求中的对象传递,但在浏览器上出现错误,即产品未在发票输入中定义。

知道如何解决这个问题吗?

4

1 回答 1

0

对于一对多,您要先创建父对象,然后使用父记录的 id 集创建子记录。

因此,在您的情况下,创建 Product 记录并从突变的响应中获取 id。然后,保存带有 ProductId 属性集的 Invoice 记录。

以下是与此用例相关的一些示例:https ://docs.amplify.aws/cli/graphql-transformer/connection#has-many

于 2021-06-23T11:45:09.233 回答