在环回中包含相关模型的问题

时间:2019-06-01 16:18:53

标签: javascript node.js loopbackjs strongloop

我有两个模型Customer和UserProviders

在Customer.json中,具有以下关系

"relations": {
    "userProviders": {
      "type": "hasOne",
      "model": "UserProviders",
      "foreignKey": "userId",
      "options": {
        "disableInclude": true,
        "http": {
          "path": "providers"
        },
        "hidden": [
          "id",
          "providersCount"
        ]
      }
    }
}

UserProviders.json

{
  "name": "UserProviders",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "userId": {
      "type": "objectId",
      "required": true,
      "index": {
        "unique": true
      }
    },
    "providers": {
      "type": [
        "any"
      ],
      "default": []
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

这就是我尝试在另一个模型(例如ModelB)中查询模型的方法。

let users = ModelB.app.models.Customer;
let UserProvider = ModelB.app.models.UserProviders;

let userData = await users.findOne({
            where: {
            patientId: patientId
          },
            include: {
              relation: 'userProviders',
              scope: {
                fields: ['providers']
              }
            }
    });

对此进行了深入研究。检查了Joining two models in loopback using include filter结果,但仍无法解决。

为此工作了几天。但是我仍然没有在userData中包含providers字段。任何帮助将非常感激。 如何包含相关的模型字段?如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:1)

"options": {
    "disableInclude": true
}

如果使用选项:disableInclude为true,则如果在include语句中使用该关系,则不会获取数据。因此,请尝试将其删除并进行检查。 希望这能解决您的问题。

有关更多信息,请参阅回送文档:https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html