Drupal JSONAPI日期范围过滤仅第二个条件生效的问题求助
解决Drupal JSON:API日期范围过滤仅单一条件生效的问题
你的问题根源是重复使用了同一个过滤条件键datefilter,后面的<=条件会直接覆盖前面的>=条件,导致只有最后一个条件生效。
正确的两种实现方式:
方式1:为每个条件分配独立的键名
给两个日期条件分别命名(比如date_start和date_end),Drupal会自动用AND逻辑组合它们:
&filter[date_start][condition][path]=field_date&filter[date_start][condition][operator]=>=&filter[date_start][condition][value]=${fiscal_year_start}&filter[date_end][condition][path]=field_date&filter[date_end][condition][operator]=<=&filter[date_end][condition][value]=${fiscal_year_end}
方式2:显式使用AND组合条件
如果需要更明确的逻辑控制,可以用group来组合两个条件,指定逻辑关系为AND:
&filter[date_group][group][conjunction]=AND&filter[date_group][group][conditions][0][path]=field_date&filter[date_group][group][conditions][0][operator]=>=&filter[date_group][group][conditions][0][value]=${fiscal_year_start}&filter[date_group][group][conditions][1][path]=field_date&filter[date_group][group][conditions][1][operator]=<=&filter[date_group][group][conditions][1][value]=${fiscal_year_end}
验证要点
- 确保两个条件的键名不重复,或者通过分组明确逻辑关系
- 检查
operator的符号是否正确(>=和<=在URL中不需要转义,直接使用即可)
内容的提问来源于stack exchange,提问作者Rdb
相关产品推荐
相关产品推荐

