欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP查询中的魔术方法简述

程序员文章站 2023-11-05 19:59:22
我们在使用thinkphp开发的时候,有时候会用到getbyid('1')这个方法快速的获取一条信息的内容,这个方法比用where(" id =1 ")->find(...

我们在使用thinkphp开发的时候,有时候会用到getbyid('1')这个方法快速的获取一条信息的内容,这个方法比用where(" id =1 ")->find()好用多了,同时查询效率也比find快速。

很多人在刚开始接触这个方法的时候,没有多留意它的内部实现机制,仅仅认为是通过id来获取信息,而事实并非如此。
例如有的系统里存在getbytitle("nihao")、getbymoney('1000')这类方法,这些与刚才提到的getbyid('1')很相似,同时实现的功能原理也与getbyid('1')一样。
其实类似这种getbyid($id)、getbytitle($title)、getbyusername($username)等等,以“getby+字段”的方法有个专有名词叫做“魔术方法”它后面的字段可以是数据表中的任何一个字段,返回结果只能是查询出来的第一条数据,这种方法查询的效率很高,很好记住。
有时候我们的字段不是连起来的,例如:user_name 这样子的字段,我们是不是这样子写(getbyuser_name($name))呢?答案是否定的,thinkphp中不支持这样子的方法,我们需要使用驼峰法来命名,应该写成这样 getbyusername($name)就可以了!