【问题标题】:How to include the 'many' part of a relation from the 'one of many' model?如何从“多者之一”模型中包含关系的“多”部分?
【发布时间】:2016-10-25 17:29:44
【问题描述】:

我正在尝试获取产品,包括它所属的类别。一个类别当然有许多产品,一个产品是一个类别的一部分。我就是这样做的。

Product.find({include: 'Categories'})

当我尝试执行此查询时,我收到一个错误。 '没有为产品模型定义关系“类别”'。

我根据此处找到的环回文档定义了这种关系:https://docs.strongloop.com/display/public/LB/HasMany+relations。因为一个类别有很多产品。如下所示:

category.json

"relations": {
  "products": {
    "type": "hasMany",
    "model": "Product",
    "foreignKey": "categoryId"
  }
},

products.json 中没有定义任何内容。我当然检查了复数形式,但它们都检查了。

当我尝试获取所有类别的所有产品时,它可以正常工作。我很确定这是故意的。但是我该怎么做呢?我已经尝试将 Product 中的关系定义为 hasOne,记录在这里:https://docs.strongloop.com/display/public/LB/HasOne+relations。但这需要另一个对象中的外键,因此这显然仅适用于一对一的关系。除此之外,我有点难过...有什么想法吗?

【问题讨论】:

    标签: node.js express strongloop


    【解决方案1】:

    当您从产品端包含它时,您必须在 product.json 中创建该关系

    正如您所提到的,一个产品只属于一个类别 - 这意味着关系名称应该是类别。

    可以把它想象成这样,loopback 会调用一个函数 Product.category

    在product.json中添加如下sn-p

    "relations": {
      "category": {
        "type": "belongsTo",
        "model": "Category",
        "foreignKey": "categoryId"
      }
    },
    

    现在试试 -

    Product.find({include: 'category'})

    【讨论】:

    • 感谢您的帮助!我认为它必须以某种方式定义为 2-way。现在我也可以在文档中清楚地看到这一点,所以现在我觉得很愚蠢。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    相关资源
    最近更新 更多