ThinkPHP之getField详解


Posted in PHP onJune 20, 2014

getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下:

1.获取某个字段值

这个是getField方法最基本的用法,用于获取符合条件的某个字段值。

$User = M("User"); // 实例化User对象
 // 获取ID为3的用户的昵称 
$nickname = $User->where('id=3')->getField('nickname');

返回的nickname是一个字符串结果。也就是说,即使有满足条件的多个字段,也只会返回一个结果。

2.获取某个字段列

如果希望返回符合要求的字段列(多个结果),可以使用:

$User = M("User"); // 实例化User对象
 // 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('nickname',true);

第二个参数传入了true,返回的nickname则是一个数组,包含了所有满足条件的昵称列表。

如果需要限制返回结果数量,可以使用:

$nickname = $User->where('status=1')->getField('nickname',8);

或者

$nickname = $User->where('status=1')->limit(8)->getField('nickname',true);

3.获取2个字段列表

如果希望获取满足条件的id和昵称列表,则可以使用:

$User = M("User"); // 实例化User对象
 // 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('id,nickname');

如果getField方法传入多个字段名称的话,默认返回一个关联数组,以第一个字段的值为索引(所以第一个字段要尽量选择不会重复的)。
也可以限制返回数量,例如:

$nickname = $User->where('status=1')->getField('id,nickname',8);

或者

$nickname = $User->where('status=1')->limit(8)->getField('id,nickname');

4.获取多个字段列表

如果传入了2个以上的字段名,则返回一个二维数组(类似select方法的返回值,区别在于索引是二维数组的键名是第一个字段的值),例如:

$result = $User->where('status=1')->getField('id,account,nickname');

如果不希望返回二维数组,可以使用连接符,例如:

$result = $User->where('status=1')->getField('id,account,nickname',':');

那么返回的结果则是一个索引数组,键名是id值,键值则是account:nickname连接组成的字符串。

getField方法通常还可以配合连贯操作where、limit、order等一起使用。还有一些高级的用法,包括对join表的支持和sql方法的支持等。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
默默小谈PHP&MYSQL分页原理及实现
Jan 02 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
php escape URL编码
Dec 10 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
PHP中字符串长度的截取用法示例
Jan 12 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 PHP
Yii框架函数简单用法分析
Sep 09 PHP
ThinkPHP之N方法实例详解
Jun 20 #PHP
ThinkPHP之R方法实例详解
Jun 20 #PHP
ThinkPHP之import方法实例详解
Jun 20 #PHP
ThinkPHP之A方法实例讲解
Jun 20 #PHP
ThinkPHP之M方法实例详解
Jun 20 #PHP
php实现的短网址算法分享
Jun 20 #PHP
ThinkPHP3.1之D方法实例详解
Jun 20 #PHP
You might like
PHP中overload与override的区别
2017/02/13 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python中的decorator的作用详解
2018/07/26 Python
python如何实现代码检查
2019/06/28 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
EJB timer的种类
2014/10/28 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
财务会计实习报告体会
2013/12/20 职场文书
应届专科生个人的自我评价
2014/01/05 职场文书
卫生巾广告词
2014/03/18 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
地心历险记观后感
2015/06/15 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
2019广播稿怎么写
2019/04/17 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android