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 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
微信API接口大全
Apr 15 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
php提交post数组参数实例分析
Dec 17 PHP
php中array_column函数简单实现方法
Jul 11 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php输出形式实例整理
2020/05/05 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
幼师自我鉴定范文
2013/10/01 职场文书
安全生产检查通报
2014/01/29 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
个人自我鉴定总结
2014/03/25 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js
Spring 使用注解开发
2022/05/20 Java/Android