Loopback引用很多嵌套的外键

时间:2017-09-01 11:54:44

标签: node.js foreign-keys loopbackjs

我想引用一个不同的模型(如此处所述:https://loopback.io/doc/en/lb2/Embedded-models-and-relations.html),但是通过嵌套 ID:

{
 "name" : "person",
 ...
  "relations": {
    "cars": {
      "type": "referencesMany",
      "model": "car",
      "foreignKey": "cars.id"
  }
}

人json实际上会是这样的:

{
  ...
  cars: [{"id": 1, "name": "car1"}, ...]
}

汽车模型将是完整的汽车细节

我是否必须编写自己的远程方法才能执行此操作?

1 个答案:

答案 0 :(得分:0)

Yosh DaafVader,

我也遇到过这个问题并花时间找到解决方案^^但实际上你只需要使用目标关系属性中的参数选项。 documentation说明了如何定义关系(确保环回cli在版本3.x中不包括使用嵌入或引用的方式)。

在您的个人模型中,您必须更改 foreignKey 并添加以下选项才能仅使用ID引用汽车。

{
 "name" : "person",
 ...
  "relations": {
    "cars": {
      "type": "referencesMany",
      "model": "car",
      "foreignKey": "",
      "options": {
        "validate": true,
        "forceId": true
      }
  }
}

现在,您将能够在资源管理器中看到添加,删除和查看属于目标人员的汽车的新路线。

[编辑]

  1. foreignKey 应为空白,以便能够在汽车列表中正确添加项目,或者您可以测试并提供一些反馈意见
  2. 验证选项可确保数据库中存在ID
  3. forceId 选项将确保仅接受ID作为参数
  4. [/编辑]

    希望它会有所帮助:)

    干杯