hasWhere可以根据关联条件来查询当前模型对象数据。以下是官方手册说明:传送门
但是这个函数有很多坑:
坑点1、使用hasWhere后,主模型必须使用别名,并且别名只能是去除前缀后的驼峰形式。因为使用hasWhere生成的sql语句中使用的是inner join语法,其中on 语句在TP6中,会自动带上主表去除前缀后的驼峰形式,因此不加别名的话,sql语句会报错。
坑点2、使用hasWhere之后,field方法不再起作用,无论是放在任何地方,都是全字段查询。因为Tp6封装后的语句就是 tableName.* , 很恶心。暂时没有发现解决方案,有方案会第一事件更新,也希望看到的老哥,如果会的可以指点一二。
坑点3、主表的where条件必须放置在hasWhere后面,否则无法生效。
总结: