响应中没有关系字段 Strapi v4
No relational fields in response Strapi v4
我有一个问题,在获取我的数据后,none 的关系字段出现在响应中。当我查看一个具有关系的模式的模式时,我看到关系字段存在于属性对象中。但是我的回复中仍然只得到非关系字段。
这是我的架构之一
{
"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"
}
}
}
在 Strapi v4
中,默认情况下在获取条目时 不会 填充关系。
解释:
查询可以接受 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]=*
解决方案:
将您的 API url 更改为以下内容之一,您应该能够看到响应中填充的相关字段。
GET /api/activities?populate=subcategory,members
或
GET /api/activities?populate=*
参考:
我有一个问题,在获取我的数据后,none 的关系字段出现在响应中。当我查看一个具有关系的模式的模式时,我看到关系字段存在于属性对象中。但是我的回复中仍然只得到非关系字段。
这是我的架构之一
{
"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"
}
}
}
在 Strapi v4
中,默认情况下在获取条目时 不会 填充关系。
解释:
查询可以接受 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]=*
解决方案:
将您的 API url 更改为以下内容之一,您应该能够看到响应中填充的相关字段。
GET /api/activities?populate=subcategory,members
或
GET /api/activities?populate=*