Проблема с включением связанной модели в петлю - PullRequest
4 голосов
/ 01 июня 2019

У меня есть две модели 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']
              }
            }
    });

Сделал глубокое исследование этого. Проверил Объединение двух моделей в петлевом режиме с использованием фильтра include , но все еще не может это исправить.

Работаю над этим пару дней. Но все же я не получаю поле провайдеров, включенное в userData. Любая помощь могла бы быть полезна. Как включить поле связанной модели? Пожалуйста, поправьте меня, если я ошибаюсь.

1 Ответ

1 голос
/ 02 июня 2019
"options": {
    "disableInclude": true
}

Если вы используете option: disableInclude в true, тогда он не извлекает данные, если отношение используется в операторе включения.Поэтому, пожалуйста, попробуйте удалить его и проверить.Надеюсь, что это решит вашу проблему.

Для получения дополнительной информации, пожалуйста, обратитесь к документации обратной петли: https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html

...