You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Strapi API中基于多对多关系筛选关联Football的Trip数据

解决Strapi多对多关联查询问题

对于你的Sport和Trip多对多关联场景,要筛选关联了Football的Trip数据,你之前的URL格式错误,正确写法分Strapi版本来看:

Strapi v4(当前主流版本)

正确的API请求URL应该是:

GET /api/trips?filters[sports][Name][$eq]=Football&populate=sports
  • filters[sports][Name][$eq]=Football:指定过滤条件,匹配Trip关联的sports集合中Name属性等于Football的条目
  • populate=sports:如果需要在返回的Trip数据中包含关联的Sport信息,必须加上这个参数,否则关联字段只会返回ID数组

如果希望返回的Trip里仅包含Football这个关联Sport(而非所有关联的Sport),可以给populate也添加过滤:

GET /api/trips?filters[sports][Name][$eq]=Football&populate[sports][filters][Name][$eq]=Football

Strapi v3(旧版本)

若使用的是v3,URL格式略有不同:

GET /trips?filters[sports.name][$eq]=Football&_expand=sports
  • filters[sports.name][$eq]=Football:v3中通过.来访问关联模型的属性
  • _expand=sports:用来展开关联的Sport数据

你之前的请求报错原因:

  1. Strapi v4的API路径需加上/api前缀(v3不需要,但过滤语法也不支持你写的格式)
  2. $in是用于匹配数组类型字段的枚举值,而这里要过滤关联模型的字符串属性,应使用$eq做精准匹配
  3. 未指定关联模型的具体属性Name,直接写sports无法定位到Sport的Name字段

内容的提问来源于stack exchange,提问作者Samuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:05:00