上一篇文章讲解“数据库查询构造器-高级查询一”,本篇文章讲解“数据库查询构造器-高级查询二”。
7. 使用Query对象查询(V5.1.5+)
V5.1.5+版本开始,可以通过调用一次where方法传入Query对象来进行查询。
在Index控制器中,新建objFun方法:
预览:
注意:
1. Query对象的where方法仅能调用一次,如果query对象里面使用了非常查询条件的链式方法,则不会传入当前查询。
修改Index控制器下的objFun方法:
预览:
8. 快捷方法
系统封装了一系列快捷方法,用于简化查询。
快捷方法:
下面举例说明下两个字段比较的查询条件whereColumn方法的用法。
1)比较两个字段的大小
在Index控制器中,新建fastQuery方法:
预览:
2)比较两个字段是否相等
修改Index控制器下的fastQuery方法:
预览:
注意:
1. 相同字段条件也可以简化为:
Db::table('think_user')
->whereColumn('cid','status')
->select();
3)支持数组形式(V5.1.11+)
修改Index控制器下的fastQuery方法:
9. 动态查询
查询构造器还提供了两个动态查询机制,用于简化查询条件,包括getBy和getFieldBy。
其中FieldName表示数据表的实际字段名称的驼峰法表示。
在Index控制器中,新建dynFun方法,查询user表中的name字段:
预览:
例如查询其他字段的方式:
注意:
1. getBy和getFieldBy方法只会查询一条记录,可以和其它的链式方法搭配使用。
ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“查询构造器-视图查询”