首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPHP!学习打卡第四天

前几天有点事情就没有更新学习状况。那么今天就是除夕了,我先祝大家新年快乐,在这里给大家拜个早年了。那么不多说了,接下来就来学习一下我们第四章连贯操作,那么连贯操作的什么呢?连贯操作可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作,也是ThinkPHP的ORM中的一个亮点。

需 掌 握 的 内 容

只要SQL可以实现的操作,基本上都可以用ThinkPHP的连贯操作来实现,并且不用考虑数据库之间的表达差异,具有可移植性。

连 贯 操 作 的 方 法

连贯操作仅在当次查询或者操作有效,完成后会自动清空连贯操作的所有传值(有个别特殊的连贯操作会记录当前的传值,如cache连贯操作)。简而言之,连贯操作的结果不会带入以后的查询。所有的连贯操作都返回当前的模型实例对象,其中带*标识的表示支持多次调用。

用 法

WHERE方法是使用最多的连贯操作方法

TABLE,如果不调用table方法,会自动获取模型对应或者定义的数据表

例如:

就是查询think_user表中,所有status等于1的数据。

DATA,如果不调用data方法,则会取当前的数据对象或者传入add和save的数据。

例如:

就是在think_model数据库里添加一条数据

FIELD,如果不调用field方法,则默认返回所有字段,和field('*')等效。

例如:

查询所有的id,name,age数据

查询所有数据

查询除了age以外的所有数据

ORDER,如果不调用order方法,按照数据库的默认规则。

例如:

表示对status降序,对id升序。

LIMIT,如果不调用limit方法,则表示没有限制。

例如:

查询think_model表中,1,3的所有数据。

PAGE,可以更加快速的进行分页查询。

例如:

表示查询第2页的内容,每一页显示2条数据。

GROUP,Group方法的参数只支持字符串。

例如:

表示按照用户的姓名进行分组

HAVING,having方法的参数只支持字符串。

例如:

表示年龄大于3的

JOIN,join方法支持多次调用。默认采用JOIN (等同于 INNER JOIN)方式。

例如:

UNION,Union方法支持多次调用。每个union方法相当于一个独立的SELECT语句。

例如:

查询think_model表中的所有的姓名

DISTINCT

例如:

对姓名进行唯一过滤

LOCK

Lock方法是用于数据库的锁机制,就会自动在生成的SQL语句最后加上 FOR UPDATE或者FOR UPDATE NOWAIT(Oracle数据库)。

VALIDATE

validate方法用于数据的自动验证,我们会在数据验证部分详细描述。

AUTO

auto方法用于数据的自动完成操作,具体使用我们会在数据自动完成部分描述。

SCOPE

scope方法的具体用法可以参考:3.1的新特性 命名范围。

FILTER,filter方法一般用于写入和更新操作,filter方法用于对数据对象的安全过滤。

例如:

目前filter方法不支持多个方法的过滤。

好啦,我们第四章就学习完了。在这里我再次祝福大家新年快乐,万事如意。新手上路,打卡学习,欢迎各位大佬的交流与指导,谢谢!

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券