Получить данные через ссылку (внешний ключ), которая является массивом объектов в закольцованных отношениях - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с извлечением через модельные отношения в loopback (strongloop).

Скажем, у меня две модели ..

Model1 (Item)

{
  "name": "Item",
  ..
  ..
  "properties": {
    "id": {
      "type": "string",
      "id": true,
      "generated": true
    },
    ....
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

Model2 (корзина)

{
  "name": "Cart",
  ..
  ..
  "properties": {
    "id": {
      "type": "string",
      "id": true,
      "generated": true
    },
    "details": {
      "type": {
        "itemsData": [
            {
            "itemId": {
                "type": "string",
                "required": true
            },
            "quantity": {
                "type": "number",
                "required": true
            },
            }
        ],
        "required": true
      },
      "id": true,
      "generated": true
    },
    ....
  },
  "validations": [],
  "relations": {
    "itemData": {
      "type": "referencesMany",
      "model": "Item",
      "foreignKey": "details.restaurantId",
      "options": {
        "validate": false,
        "forceId": false
      },
      "scope": {
        "fields": {}
      }
    }
  },
  "acls": [],
  "methods": {}
}

Я знаю, что могу добиться извлечения данных, если

(1) я изменю свою схему для сохранения только идентификаторов элементов (itemId) идержать его вне деталей объекта.(или)

(2) Мне нужно сохранить все данные элемента в itemData (массив объектов - полная информация об элементе).

(3) Использовать заполнение (объединяет).

В моем случае есть область, в которой данные элемента могут измениться, поэтому я не могу использовать второй (2).

Мой прямой вопрос: есть ли способ получитьдругие данные модели через отношение , , если я храню внешний ключ в виде встроенного массива объектов .

Есть ли какой-либо способ, которым я могу добиться без изменения схемы (или) изменения схемысхема, через отношение модели.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

есть ли способ получить другие данные модели через отношение, если я храню внешний ключ как встроенный массив объектов.

Не думаю, что петлевые отношенияprimaryKey / foreignKey

Есть ли какой-либо способ, которым я могу добиться без изменения схемы (или) изменения схемы, через отношение модели.

Отображение элементов в тележки может быть достигнуто с помощью отношения hasManyThrough , которое может быть сгенерировано с помощью $ lb relation.

Подробности

Необходимо создать дополнительную таблицу с именем CartItem как минимум с 3 свойствами id, cart_id, item_id.

Чтобы связатьДля добавления товара в корзину используйте PUT /Carts/{CartId}/Items/rel/{ItemId}.

Для получения товаров в корзину используйте GET /Carts/{CartId}/Items

...