如何从"众多"模型中包含关系的"多个"部分?

Ozi*_*iho 0 node.js express strongloop

我正在尝试获得一个产品,包括它所属的类别.课程类别包含许多产品,产品属于同一类别.我是这样做的.

Product.find({include: 'Categories'})
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此查询时,出现错误."关系"类别"未定义为产品型号".

我根据这里找到的环回文档定义了这种关系:https://docs.strongloop.com/display/public/LB/HasMany+relations.由于一个类别有很多产品.看起来如下:

category.json

"relations": {
  "products": {
    "type": "hasMany",
    "model": "Product",
    "foreignKey": "categoryId"
  }
},
Run Code Online (Sandbox Code Playgroud)

products.json中没有定义任何内容.我已经检查了复数当然,但他们都检查了.

当我尝试获取所有类别的所有产品时,它的工作没有问题.我很确定这是有意的.但我怎么能这样做呢?我已经尝试在Product中定义一个关系,如下所示:https ://docs.strongloop.com/display/public/LB/HasOne+relations .但这需要在另一个对象中使用外键,因此显然只是用于一对一的关系.除此之外,我有点难过......有什么想法吗?

gee*_*guy 5

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

如您所述,产品只属于一个类别 - 这意味着关系名称应该是类别.

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

在product.json中添加以下代码段

"relations": {
  "category": {
    "type": "belongsTo",
    "model": "Category",
    "foreignKey": "categoryId"
  }
},
Run Code Online (Sandbox Code Playgroud)

现在尝试 -

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