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错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
php实现快速排序法函数代码
Aug 27 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
php实现建立多层级目录的方法
Jul 19 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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
PHP 程序员的调试技术小结
2009/11/15 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Javascript实现的分页函数
2006/12/22 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
js运动事件函数详解
2016/10/21 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
质检的岗位职责
2013/11/17 职场文书
高三生物教学反思
2014/01/25 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL
Android中的Launch Mode详情
2022/06/05 Java/Android