响应中没有关系字段 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=*

参考: