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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
Jun 04 PHP
Laravel框架下的Contracts契约详解
Mar 17 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
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
浅析Ajax语法
2016/12/05 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
大班亲子运动会方案
2014/06/10 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
离婚上诉状范文
2015/05/23 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
Python OpenCV 图像平移的实现示例
2021/06/04 Python