先确认问题层级
Grid能打开,一筛选ID或状态就报Column is ambiguous。join的多个表都有同名列,而Filter仍使用裸字段。
从异常SQL确认冲突列和表别名,明确UI字段属于主表还是join表。
在Collection用addFilterToMap映射到main_table.entity_id或目标别名,Select列使用唯一alias。
修复方法
- UI column name、filter与DataProvider字段保持一致,自定义addFilter保留condition type。
- 同时测试排序、范围筛选和导出;只修WHERE不修ORDER BY仍会报错。
$collection->addFilterToMap('entity_id', 'main_table.entity_id');
$collection->addFilterToMap('status', 'main_table.status');怎样才算解决
ID、状态、日期筛选与排序、CSV导出均正常,join不会造成重复行。

