Я использовал разные модели, чтобы упростить то, что я пытаюсь достичь, и удалить беспорядок, хотя теория должна быть такой же, как мой фактический проект.Loopback API включает фильтры, которые не работают должным образом
Используйте следующие допущения: система может иметь только один тип динамиков и один тип усилителя.
Скажем, у меня есть следующие модели:
*** System ***
- id
- name
- speakerId
- ampId
*** Speaker ***
- id
- name
*** Amp ***
- id
- name
Я добавил следующее моей System.json файл модели (который я думаю, что правильно):
"relations": {
"speakers": {
"type": "hasOne",
"model": "Speaker",
"foreignKey": "speakerId"
},
"amps": {
"type": "hasOne",
"model": "Amp",
"foreignKey": "ampId"
}
},
Когда я начинаю мое приложение и открыть API Explorer, и идти, чтобы создать новый экземпляр спикера или Amp он ожидает следующее:
*** Speaker ***
- id
- name
- speakerId *** Why is this here??? ***
Если изменить файл модели System.json, чтобы выглядеть следующим образом (который я думаю, что это неправильный способ сделать это):
"relations": {
"speakers": {
"type": "hasOne",
"model": "Speaker",
"foreignKey": "id"
},
"amps": {
"type": "hasOne",
"model": "Amp",
"foreignKey": "id"
}
},
Все выглядит прямо в API Explorer. Поэтому я добавляю несколько динамиков и усилителей, затем добавляю систему.
Когда я добавляю включить фильтр на запрос системы GET:
{"include":["speakers","amps"]}
Она включает в себя акустические системы и усилители, но с использованием System.id в качестве индекса для громкоговорители и усилители Модели вместо System.speakerId и System.ampId. Так ellaborate если:
System.id = 5
System.speakerId = 1
System.ampId = 3
Он будет включать в себя динамик с идентификатором 5 и усилитель с идентификатором 5 вместо включения громкоговорителя с идентификатором 1 и Amp с идентификатором 3.
Я хочу, чтобы иметь возможность перечислять все системы, в том числе связанные с ними динамики и усилители. Как это можно сделать с помощью Loopback. В тот момент, когда я использую приведенные выше модели, в БД памяти вместо обычных, чтобы проверить. Любая помощь будет оценена, поскольку я сейчас нахожусь в том, чтобы вырвать мои волосы!
С уважением, Джеймс