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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
Smarty Foreach 使用说明
Mar 23 PHP
PHP 图像尺寸调整代码
May 26 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
php实现搜索类封装示例
Mar 31 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
php适配器模式简单应用示例
Oct 23 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
php 购物车完整实现代码
2014/06/05 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
javascript验证身份证号
2015/03/03 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
vant实现购物车功能
2020/06/29 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
Python笔记(叁)继续学习
2012/10/24 Python
python Django框架实现自定义表单提交
2016/03/25 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
化学专业毕业生自荐信
2013/11/15 职场文书
顶岗实习接收函
2014/01/09 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
连带责任保证书
2014/04/29 职场文书
小学端午节活动总结
2015/02/11 职场文书
物业公司管理制度
2015/08/05 职场文书
2016小学新学期寄语
2015/12/04 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
Python合并多张图片成PDF
2021/06/09 Python