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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
基于mysql的论坛(1)
Oct 09 PHP
PHP语法速查表
Dec 06 PHP
PHP函数utf8转gb2312编码
Dec 21 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
phpstorm编辑器乱码问题解决
Dec 01 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
Laravel中间件实现原理详解
Oct 09 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
Laravel中10个有用的用法小结
May 06 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
laravel入门知识点整理
Sep 15 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代码
2008/09/10 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
python编程实现归并排序
2017/04/14 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
详解Python 函数参数的拆解
2020/09/02 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
高一生物教学反思
2014/01/17 职场文书
总经理司机岗位职责
2014/02/06 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
工程项目合作意向书
2015/05/08 职场文书
运动会广播稿50字
2015/08/19 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
实现GO语言对数组切片去重
2022/04/20 Golang
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS