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+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
DISCUZ 分页代码
Jan 02 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
深入理解PHP内核(一)
Nov 10 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
php实现文件预览功能
May 23 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
js设置默认时间跨度过程详解
2019/07/17 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python urllib2运行过程原理解析
2020/06/04 Python
高中毕业生自我鉴定
2013/11/03 职场文书
超市业务员岗位职责
2013/12/05 职场文书
毕业生实习鉴定
2013/12/11 职场文书
电焊工工作岗位职责
2014/02/06 职场文书
党员入党表决心的话
2014/03/11 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers