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 相关文章推荐
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
php eval函数一句话木马代码
May 21 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
php字符集转换
Jan 23 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 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 之Section与Cookie使用总结
2012/09/14 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
不安全的常用的js写法
2009/09/15 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
理解AngularJs指令
2015/12/10 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python操作文件的参数整理
2019/06/11 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python切图九宫格的实现方法
2019/10/10 Python
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
八年级英语教学反思
2014/01/09 职场文书
进步之星获奖感言
2014/02/22 职场文书
完整版商业计划书
2014/09/15 职场文书
师德师风整改措施
2014/10/24 职场文书
2015年暑假生活总结
2015/07/13 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL