thinkphp 中getfield的用法详解

来源:互联网 发布:土门离比客运站源码 编辑:程序博客网 时间:2024/05/17 14:18

转自tp3.2 手册http://document.thinkphp.cn/manual_3_2.html#read_data

读取字段值

读取字段值其实就是获取数据表中的某个列的多个或者单个数据,最常用的方法是 getField方法。

示例如下:

  1. $User = M("User"); // 实例化User对象
  2. // 获取ID为3的用户的昵称
  3. $nickname = $User->where('id=3')->getField('nickname');

默认情况下,当只有一个字段的时候,返回满足条件的数据表中的该字段的第一行的值。

如果需要返回整个列的数据,可以用:

  1. $User->getField('id',true); // 获取id数组
  2. //返回数据格式如array(1,2,3,4,5)一维数组,其中value就是id列的每行的值

如果传入多个字段的话,默认返回一个关联数组:

  1. $User = M("User"); // 实例化User对象
  2. // 获取所有用户的ID和昵称列表
  3. $list = $User->getField('id,nickname');
  4. //两个字段的情况下返回的是array(`id`=>`nickname`)的关联数组,以id的值为key,nickname字段值为value

这样返回的list是一个数组,键名是用户的id字段的值,键值是用户的昵称nickname。

如果传入多个字段的名称,例如:

  1. $list = $User->getField('id,nickname,email');
  2. //返回的数组格式是array(`id`=>array(`id`=>value,`nickname`=>value,`email`=>value))是一个二维数组,key还是id字段的值,但value是整行的array数组,类似于select()方法的结果遍历将id的值设为数组key

返回的是一个二维数组,类似select方法的返回结果,区别的是这个二维数组的键名是用户的id(准确的说是getField方法的第一个字段名)。

如果我们传入一个字符串分隔符:

  1. $list = $User->getField('id,nickname,email',':');

那么返回的结果就是一个数组,键名是用户id,键值是 nickname:email的输出字符串。

getField方法还可以支持限制数量,例如:

  1. $this->getField('id,name',5); // 限制返回5条记录
  2. $this->getField('id',3); // 获取id数组 限制3条记录

可以配合使用order方法使用。更多的查询方法可以参考查询语言章节。

原创粉丝点击