我尝试使用关系名称(categories
)和populate参数组合来填充特定关系,但它没有填充categories
。
当我查看我的模式时,我看到关系字段出现在属性对象中,但是我仍然在响应中只得到非关系字段。
我尝试了Strapi文档中提到的每一种组合,但都不起作用。find
权限也会针对正在填入的内容类型启用,在本例中为categories
。
/api/products?populate=*
/api/products?populate[0]=categories
/api/products?populate[categories]=*
我的产品模式
{
"kind": "collectionType",
"collectionName": "products",
"info": {
"singularName": "product",
"pluralName": "products",
"displayName": "Product",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"title": {
"type": "string"
},
"images": {
"type": "media",
"multiple": true,
"required": false,
"allowedTypes": [
"images"
]
},
"categories": {
"type": "relation",
"relation": "oneToMany",
"target": "api::category.category"
}
}
}
系统
- Strapi版本:
4.1.8
- NPM版本:
8.3.2
- Node.js版本:
16.13.2
- 数据库:MySQL
3条答案
按热度按时间z0qdvdin1#
编辑:其他选择是使用strapi marketplace的populate deep,只需安装,配置默认深度,然后在您需要深度的每个请求上添加填充:深的
您必须在控制器内部填充,如Strapi documentation中所示
查询引擎API:正在填充
实体服务API:正在填充
REST API:填充和字段选择
如果您想填充所有内容,只需使用populate:'*'
如果要填充一个或多个关系,请使用填充:[关系一,关系二]
c8ib6hqw2#
还需要对产品启用查找权限,需要对所有关系(或子表)设置查找权限。
使用“role”选项。
u3r8eeie3#
作为示例如果要根据某些条件从数据库中提取数据并填充一个关系
这里是结果
如果要填充所有关系