我最近开始与strapi合作,并一直在弄清楚如何去内容关系等...现在我已经达到了一个点,当我有多个内容关系相互依赖。
这是我的结构:
收藏类型:
1.产品分类
- 文章
- 内容关系:* 文章有一个类别 *
单一类型: - 网站Map
- 内容关系:* 首页有很多文章 *
现在,我想做的是获取被分配到主页的文章类别的所有嵌套属性,只需从/homepage
发出GET
请求
我现在得到的是一个json结构,像这样:
{
"id": 1,
"hero": {
....
},
"featuredArticles": {
....
},
"displayedArticles": [
{
"id": 2,
"category": 5,
}
]
}
预期输出是什么:
{
"id": 1,
"hero": {
....
},
"featuredArticles": {
....
},
"displayedArticles": [
{
"id": 2,
"category": [
{
"id": 5,
"title": "Foundation"
}
],
}
]
}
我的怀疑是,当试图从/homepage
而不是直接从/articles
获取时,类别的属性基本上嵌套得太多了。
我发现处理这个问题可以通过修改strapi目录中的控制器来实现,但我还没有完全弄清楚。
Strapi控制器文档
有谁知道解决这个问题的办法吗?
2条答案
按热度按时间30byixjq1#
在Strapi v4中,您可以在请求时检索深度嵌套关系,我必须检索一个嵌套关系category_tags,它与category相关,而它与我试图检索的page集合类型相关。这里是一个链接,了解更多信息https://docs.strapi.io/dev-docs/api/rest/populate-select
例如,这个调用只从page集合类型中检索categories关系,但是我还需要从categories中检索category_tags*关系。
此调用将在检索页面集合类型时,从categories中检索嵌套关系*category_tags。
此外,我还需要从***category_tags***中检索另一个名为***feature***的关系,并返回一个图像,因此现在我需要获取三层深度的数据。
这部分特别是
[0]=category_tag,cover
从特征中检索category_tag和封面图像。您可以更进一步,但响应变慢,最后一次调用是1136 ms和24.95 KB。
esbemjvw2#
首先,您需要一个自定义的控制器功能。在
/api/homepage/controllers/homepage.js
中,您可以导出自定义查找函数。您可以在其中定义要填充的字段:
有关参考,请参阅最新的beta文档:定制化
第二种方式:按照需求填充