#javascript #strapi
#javascript #strapi
Вопрос:
У меня проблема, когда ни одно из реляционных полей не присутствует в ответах после извлечения моих данных. Когда я смотрю на схему одной из моих схем с отношением, я вижу, что реляционные поля присутствуют в объекте attributes . Но все же я получаю только нереляционные поля в своем ответе.
Это одна из моих схем
{
"kind": "collectionType",
"collectionName": "activities",
"info": {
"singularName": "activity",
"pluralName": "activities",
"displayName": "activity"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string"
},
"date": {
"type": "date"
},
"subcategory": {
"type": "relation",
"relation": "oneToOne",
"target": "api::subcategory.subcategory"
},
"members": {
"type": "relation",
"relation": "manyToMany",
"target": "api::member.member",
"inversedBy": "activities"
}
}
}
Ответ №1:
Strapi v4
Отношения In не заполняются при выборке записей по умолчанию.
Объяснение:
Запросы могут принимать populate
параметр, чтобы явно определить, какие поля заполнять, со следующим синтаксисом:
GET /api/:pluralApiId?populate=field1,field2
Пример запроса: получить книги и заполнить отношения именем и адресом автора
GET /api/books?populate=author.name,author.address
Для удобства можно использовать подстановочный знак * для заполнения всех отношений первого уровня:
Пример запроса: получить все книги и заполнить все их отношения первого уровня
GET /api/books?populate=*
Пример запроса: получить все книги и заполнить их авторами и всеми их отношениями
GET /api/books?populate[author]=*
Примечание: только отношения первого уровня заполняются с populate=*.
использованием синтаксиса скобок LHS (т.Е. [populate]=*
) Для заполнения глубже:
Пример запроса: получить все отношения, вложенные внутри компонента «навигация» в «глобальном» единственном типе
GET /api/global?populate[navigation][populate]=*
Решение:
Измените URL-адрес вашего API на один из следующих, и вы сможете увидеть соответствующие поля, заполненные в ответе.
GET /api/activities?populate=subcategory,members
или
GET /api/activities?populate=*