`大家好
我正在尝试使用 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
但它不起作用。请帮忙`
这是您问题的答案。
您似乎正在使用多选字段。
这不是 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 对象上的过滤器手动过滤(感谢查询系统)