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截取中文字符串的问题
Jul 12 PHP
PHP中实现进程间通讯
Oct 09 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
php实例分享之二维数组排序
May 15 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
php实现微信支付之企业付款
May 30 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 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
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP强制转化的形式整理
2020/05/22 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
Python的时间模块datetime详解
2017/04/17 Python
import的本质解析
2017/10/30 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
PyQt5实现拖放功能
2018/04/25 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
《会走路的树》教后反思
2014/04/19 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
工作检讨书怎么写
2014/10/10 职场文书
经验交流材料格式
2014/12/30 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
SQL基础的查询语句
2021/11/11 MySQL
Vue router配置与使用分析讲解
2022/12/24 Vue.js