Directus中如何根据已选城市字段筛选关联街道字段?
解决Directus中城市联动街道字段的过滤问题
以下是针对你问题的具体排查和解决方案:
核心排查点
- 确认字段机器名:确保你引用的
city是字段的机器名(不是显示名称“城市”),Directus的动态变量只识别机器名。 - 字段类型匹配:检查城市的
new_id和街道的city_id类型是否完全一致(比如都是整数/字符串),类型不匹配会导致_eq条件失效。
有效过滤规则示例
根据字段类型选择对应的规则:
情况1:new_id和city_id都是数字类型
去掉模板变量的引号,避免字符串转义问题:
{ "city_id": { "_eq": {{city.new_id}} } }
情况2:new_id和city_id都是字符串类型
保留引号,确保字符串匹配:
{ "city_id": { "_eq": "{{city.new_id}}" } }
情况3:上述规则仍无效,尝试$trigger变量引用
部分Directus版本中,表单字段的联动需要通过$trigger前缀引用触发字段:
{ "city_id": { "_eq": "{{$trigger.city.new_id}}" } }
额外验证步骤
- 确认街道字段是关联字段(指向街道集合),且过滤条件配置在该字段的「关联设置」→「过滤」选项中。
- 测试时先选中一个城市,再查看街道下拉选项是否加载;若仍无数据,可在Directus的API调试工具中手动调用街道集合的接口,带上
filter[city_id][_eq]=[你的new_id值]参数,验证是否能返回数据,排除数据本身的问题。
内容的提问来源于stack exchange,提问作者eyal gromzin
相关产品推荐
相关产品推荐

