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 file_put_contents()功能函数(集成了fopen、fwrite、fclose)
May 24 PHP
php抓取页面的几种方法详解
Jun 17 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
yii操作cookie实例简介
Jul 09 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php下Memcached入门实例解析
Jan 05 PHP
php验证码实现代码(3种)
Sep 07 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
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
PHP无敌近乎加密方式!
2010/07/17 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
php 可变函数使用小结
2018/06/12 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
转一个日期输入控件,支持FF
2007/04/27 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
JavaScript switch语句使用方法简介
2019/12/30 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
python插入排序算法的实现代码
2013/11/21 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
建筑工地质量标语
2014/06/12 职场文书
篮球赛口号
2014/06/18 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
2016寒假假期总结
2015/10/10 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL