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 相关文章推荐
使用apache模块rewrite_module (转)
Feb 14 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
php读取数据库信息的几种方法
May 24 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php实现删除指定目录下相关文件的方法
Oct 20 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
PHP自动生成表单代码分享
Jun 19 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 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
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
python中类的一些方法分析
2014/09/25 Python
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python中字符串对齐方法介绍
2015/05/21 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python3的输入方式及多组输入方法
2018/10/17 Python
python绘制多个子图的实例
2019/07/07 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
python中if及if-else如何使用
2020/06/02 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
Java程序开发中如何应用线程
2016/03/03 面试题
2015年幼儿园毕业感言
2014/02/12 职场文书
护理专科自荐书范文
2014/02/18 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
李强为自己工作观后感
2015/06/11 职场文书
新闻稿格式范文
2015/07/18 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
教你用python实现12306余票查询
2021/06/30 Python