ThinkPHP查询中的魔术方法简述


Posted in PHP onJune 25, 2014

我们在使用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)就可以了!

PHP 相关文章推荐
php session 预定义数组
Mar 16 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
PHPUnit安装及使用示例
Oct 29 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
php生成curl命令行的方法
Dec 14 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 #PHP
Zend Framework页面缓存实例
Jun 25 #PHP
非常好用的Zend Framework分页类
Jun 25 #PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 #PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 #PHP
PHP内置过滤器FILTER使用实例
Jun 25 #PHP
PHP生成图片验证码、点击切换实例
Jun 25 #PHP
You might like
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
python编写简单爬虫资料汇总
2016/03/22 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python获取Linux发行版名称
2019/08/30 Python
Python验证码截取识别代码实例
2020/05/16 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
国培教师自我鉴定
2014/02/12 职场文书
优秀护士演讲稿
2014/04/30 职场文书
远程培训的心得体会
2014/09/01 职场文书
安全生产工作汇报
2014/10/28 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript