ThinkPHP5开发连载三十七之数据库查询构造器高级查询二

上一篇文章讲解“数据库查询构造器-高级查询一”,本篇文章讲解“数据库查询构造器-高级查询二”。

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连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“查询构造器-视图查询”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180901A0TDFJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券