Односторонняя ассоциация с массивом ссылок _id в паруса js - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь использовать одностороннюю ассоциацию, потому что мне нужно только иметь ссылку на одну модель на другую модель, но не наоборот.

Модель искусства:

module.exports = {
 attributes: {
  fileName: {type: 'string', required: true},
  softwareUsed: {
   model: 'Softwares'
  }
 }
}

Model Softwares:

module.exports = {
 attributes: {
  name: {type: 'string', required: true}
 }
}

Это мой API:

http://localhost:1337/api/v1/arts/create

Если это мое тело запроса, он отлично работает:

request body:
{
    "fileName": "booking.jpeg",
    "softwareUsed": "5e70309cbf12b61299d6c528",
}

но я хочу для хранения массива программного обеспеченияUsed, поэтому я попытался:

request body:
{
    "fileName": "booking.jpeg",
    "softwareUsed": ["5e70309cbf12b61299d6c528", "5e70309cbf12b61299d6c529"],
}

, но у меня возникла ошибка:

error: OperationalError [UsageError]: Invalid new record.
Details:
  Could not use specified `softwareUsed`.  Expecting an id representing the associated record, or `null` to indicate there will be no associated record.  But the specified value is not a valid `softwareUsed`.  Instead of a string (the expected pk type), the provided value is: [ '5e70309cbf12b61299d6c528', '5e70309cbf12b61299d6c529' ]

Я также попытался создать массив в модели:

softwareUsed: [{
       model: 'Softwares'
      }]

но все еще не работают.

Есть ли способ для этого в одной связи или мне нужно использовать другую связь, но как я могу этого достичь? Спасибо.

1 Ответ

0 голосов
/ 17 марта 2020

Я думаю, вам нужно пометить атрибут softwareUsed collection, а не model:

module.exports = {
 attributes: {
  fileName: {type: 'string', required: true},
  softwareUsed: {
   collection: 'Softwares'
  }
 }
}

Вся документация «один ко многим» в документах паруса включает два двусторонних ассоциаций и добавление атрибута via, но я думаю, что этот способ работает для односторонней ассоциации.

Конечно, ваш первый вызов API теперь может работать дольше: вам может потребоваться обернуть одно программное обеспечение идентификатор в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...