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基础知识:类与对象(1)
Dec 13 PHP
PHP生成带有雪花背景的验证码
Sep 28 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
cakephp打印sql语句的方法
Feb 13 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
Symfony2联合查询实现方法
Mar 18 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
jQuery事件详解
2017/02/23 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
Python入门篇之函数
2014/10/20 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python面向对象之继承代码详解
2018/01/29 Python
python实现超市扫码仪计费
2018/05/30 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL