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分页示例代码
Mar 19 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP解决中文乱码
Apr 28 PHP
php生出随机字符串
Jul 06 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 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 中dirname(_file_)讲解
2007/03/18 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Win8下python3.5.1安装教程
2020/07/29 Python
Python3最长回文子串算法示例
2019/03/04 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
大二自我鉴定
2014/01/31 职场文书
英语国培研修感言
2014/02/13 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
企业元宵节主持词
2014/03/25 职场文书
村干部承诺书
2014/03/28 职场文书
道德之星事迹材料
2014/05/03 职场文书
档案信息化建设方案
2014/05/16 职场文书
劳模先进事迹材料
2014/12/24 职场文书
详解Redis复制原理
2021/06/04 Redis
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android