thinkphp全局范围查询与join冲突

最近修改一个项目,需要用到tp的全局范围查询,于是在BaseModel中定义了一个全局查询,如图一,
后面发现项目用到了很多的join写法,如图二,出现报错SQLSTATE[23000]: Integrity constraint violation: 1052 Column ‘shop_id’ in where clause is ambiguous,本来想着给在每个join中加上withoutGlobalScope([‘shop’])方法,
但是要修改的地方太多了,由于对tp不是很熟,想问下有没有其他的方法可以修改!
thinkphp全局范围查询与join冲突

thinkphp全局范围查询与join冲突

讨论数量: 4
zhuzixian520

同学你好,可能是很多表都有 shop_id 这个字段,而且你没有指定别名,比如 a.shop_id

2年前 评论
微加加的朋友 (楼主) 2年前
zhuzixian520 (作者) 2年前

给全局查询的字段前加上表名.

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!