评论
如何在Strapi中建立分类目录以及查询分类文章?

如何在Strapi中建立分类目录以及查询分类文章?

总有人的生命,为你治愈而来

因为懒得自己写后台所以想进步一了解strapi,对一个框架要有一个初步的了解最好的方式莫过于基于它写一个作品

strpai后台全自定义字段虽然它不是最理想的,修修补补也可以满足一个小型项目。在后台建立分类的关系表其实和微信小程序的云开发类似,可以阅读《如何在小程序云开发内容管理CMS(MonGo DB )添加分类栏目

建立数据

对于strapi来说也是一样的我们先要在后台建立2个集合Post和Category

在post集合下添加关系字段,使category 有很多 posts

如何在Strapi中建立分类目录以及查询分类文章?

我们在分类中新建一个名为:“星系列”的分类,随后写文章的时候可以看到新增的分类关系

如何在Strapi中建立分类目录以及查询分类文章?

返回到分类中可以看到 它也会有一个关联字段且会列出对应的文章,添加多个之后不要当心会出现一堆,4-5个之后会折叠

如何在Strapi中建立分类目录以及查询分类文章?

脑袋大开

字段做好之后剩下的就是接口问题了。先访问分类目录接口


127.0.0.1:1337/api/categories

{
      "id": 1,
      "attributes": {
        "name": "星系列",
        "desrc": "wordpress开源作品",
        "icon": null,
        "createdAt": "2023-03-12T06:07:32.153Z",
        "updatedAt": "2023-03-12T06:08:41.572Z",
        "publishedAt": "2023-03-12T06:08:05.996Z"
      }
},

得到的接口中没有出现关联的分类下的文章信息,因为加上填充关系深度的参数populate再次访问


127.0.0.1:1337/api/categories?populate=*

出现了关系文章的posts数据,因此这边还会出现一个疑问,若文章有30条它事如何请求?是否存在请求下一页?

如何在Strapi中建立分类目录以及查询分类文章?

经过添加35条数据之后发现,该方式会将所有的35篇文章全部列出不存在上下页请求方式

学习之后我们得请求某个分类下的所有文章应该添加筛选参数filters

127.0.0.1:1337/api/categories?populate=*&filters[id][$eq]=分类ID

到目前为止以上内容纯属我没看文档乱操作,请勿使用

正确做法

官方文档中对filters的关系筛选还是有说明的

如何在Strapi中建立分类目录以及查询分类文章?

看文档的之后发现它不用使用populate字段填充而是直接进行了filters筛选,

同时可以在接口后面添加对应页码

localhost:1337/api/posts?filters[category][id]=1&pagination[page]=2

得出的内容事符合逻辑的

如何在Strapi中建立分类目录以及查询分类文章?

总结

阅读文档,再次阅读文档,熟读文档,别乱搞