使用 Strapi [多选]过滤 API 请求上的数组

问题描述 投票:0回答:1

`大家好

我正在尝试使用 Strapi 构建一个请求,根据选项数组中包含的字符串过滤 json 响应。这是 Json :

{ "data": [ { "id": 2, "attributes": { "selectTheTitleView": "Column_3_View", "selectUserRoles": [ "ALL" ], "selectSubChannels": [ "Elite" ] } }, { "id": 5, "attributes": { "selectTheTitleView": "Column_3_View", "selectUserRoles": [ "TM-SUPERVISOR" ], "selectSubChannels": [ "Sparc" ] } }, { "id": 4, "attributes": { "selectTheTitleView": "Column_3_View", "selectUserRoles": [ "BRM-SUPERVISOR", "TM-SUPERVISOR", "VERTICAL-HEAD-SUPERVISOR" ], "selectSubChannels": [ "Sparc" ] } }, { "id": 3, "attributes": { "selectTheTitleView": "Column_3_View", "selectUserRoles": [ "PRODUCER" ], "selectSubChannels": [ "S2S" ] } } ], "meta": { "pagination": { "page": 1, "pageSize": 25, "pageCount": 1, "total": 4 } } }

我正在尝试创建一个请求:请向我发送“selectUserRoles”等于“PRODUCER”的所有目录。

这是我迄今为止尝试过的请求:

http://localhost:1337/api/supplier-catalogs?filters/[selectUserRoles][$in][0]=PRODUCER

http://localhost:1337/api/supplier-catalogs?filters/[selectUserRoles][$in]=PRODUCER

http://localhost:1337/api/supplier-catalogs?filters/[selectUserRoles][$eq]=PRODUCER

但它不起作用。请帮忙`

content-management-system strapi
1个回答
0
投票

这是您问题的答案。

您似乎正在使用多选字段。

这不是 Strapi 中的原生字段 - 因此不受 Strapi 团队的直接支持。

这是您可能安装的插件:https://market.strapi.io/plugins/strapi-plugin-multi-select

根据代码库(由社区成员开发),我可以看到他们将内容存储为 JSON: https://github.com/Zaydme/strapi-plugin-multi-select/blob/main/server/register.js

并且您无法通过 Strapi 默认过滤器对 JSON 类型进行过滤。

您必须遵循该答案中的代码: strapi中有没有办法过滤json数据格式字段?

创建一个专用的路由/控制器来使用 JSON 对象上的过滤器手动过滤(感谢查询系统)

© www.soinside.com 2019 - 2024. All rights reserved.