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 相关文章推荐
php Memcache 中实现消息队列
Nov 24 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 PHP
imagettftext() 失效,不起作用
Mar 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
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
超级实用的8个Python列表技巧
2020/08/24 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
思想政治教育专业个人求职信范文
2013/12/20 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
高中生操行评语
2014/04/25 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
故宫的导游词
2015/01/31 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
如何理解python接口自动化之logging日志模块
2021/06/15 Python
搭建Yolov5服务器
2022/04/30 Servers