Yii Active Record 查询结果转化成数组
使用Yii 的Active Record 来获取查询结果的时候,返回的结果集是一个对象类型的,有时候为了数据处理的方便希望能够转成数组返回。比如下面的方法:
// 查找满足指定条件的结果中的第一行
$post=Post::model()->find($condition,$params);
// 查找具有指定主键值的那一行
$post=Post::model()->findByPk($postID,$condition,$params);
// 查找具有指定属性值的行
$post=Post::model()->findByAttributes($attributes,$condition,$params);
返回一条结果的时候直接用 $post->attributes; 就可以了。
Post::model()->find()->attributes
如果返回的是多条结果,返回的是一个对象数组的时候有下面3种方法:
//第一种直接将结果循环输出
$trips = Trips::model()->findAll();
$arr = array();
foreach($trips as $t)
{
$arr[$t->id] = $t->attributes;
}
//第二种用array_map
$result= array_map(function($record) { return $record->attributes;}, Post::model()->findAllByAttributes($attributes));
或者重写findAll方法:
/**
* 重写findALL方法
* @params $condition 查询条件,$params 参数,$return_array 是否返回数组
*
* return 根据条件返回结果类型
*/
public function findAll($condition = '',$params=array(), $return_array=false)
{
$result = CActiveRecord::findAll($condition,$params);
if($return_array)
{
$result = array_map(create_function('$record','return $record->attributes;'),$this->findAll($condition,$params));
}
return $result;
}
//第三种方法
$array = CJSON::decode(CJSON::encode($model));
或者使用DAO
Use DAO for arrays
$array =Yii::app()->db->createCommand('SELECT * FROM tbl')->queryAll();
其它参考:http://stackoverflow.com/questions/4435886/yii-model-to-array
Yii Active Record 查询结果转化成数组的更多相关文章
- [YII]将ar查询结果转化成数组
$Column= Column::model()->findAll(); $data = array_map(create_function('$m', 'return $m->getAt ...
- xml格式的数据转化成数组
将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...
- yii2得到的数据对象转化成数组
yii2得到的数据对象转化成数组需要用到asArray().1.Customer::find(['id' => $id])->asArray()->one();2.$model = ...
- laravel 将数组转化成字符串 再把字符串转化成数组
这是在给阮少翔改代码的时候用的方法, 开始的数据用explored转化成数组不是想要的结果, 我就自己写了一个方法把有用的信息提取出来拼接成一个字符串, 再用explored将字符串转化成数组. ...
- 实现类数组转化成数组(DOM 操作获得的返回元素值是一个类数组)
目标 实现类数组转化成数组 实例 链接地址 使用方法 const foo = document.querySelectorAll('.result') //链接地址输入控制台输入这行代码 const ...
- Yii 将对象转化成数组
将从数据库查找的对象,转换成数组,并且以设定属性键名称,用到ArrayHelper::toArray $posts = Post::find()->limit(10)->all(); $d ...
- Yii框架AR对象数据转化为数组
demo函数作用:将AR对象数据转化为数组 局限:仅用于findAll的多维数组,find一维数组可以先转化为多维数组的一个元素在使用 function actionIndex() { $data = ...
- 将类数组arguments转化成数组
一.将arguments对象绑定到slice方法上 二. 例子: //闭包 二次封装函数 求和 function partialUsingArguments(fn) { var args = Arra ...
- sqlachemy查询对象转化成字典/json使用
https://www.cnblogs.com/sanduzxcvbnm/p/10220718.html
随机推荐
- Git权威指南 读笔(1)
第四章 Git初始化: 设置Git当前用户和邮件地址: $ git config --global user.name $ git config --global user.email 设置Git命令 ...
- CODEVS 2102 石子归并 2
[题目描述 Descriptin] 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分.试设计出1个算法, ...
- MongoDB索引介绍
MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...
- 记一次Oracle数据库迁移部署
--20141230部署脚本(按照时间顺序从上往下) --命令行,导出要部署的数据库数据(无分号) --expdp RMB3/test123@orcl3 SCHEMAS=RMB3 directory= ...
- Ubuntu14.04建立WiFi热点
整理自Ubuntu 下建立WiFi热点的方法 Ubuntu14.04 Deepin2014分享WiFi 亲测成功 方法一:network manager 用Ubuntu自带的network manag ...
- memcached远程 telnet 无法连接,解决方案
因为默认的Memcached配置,使用了本机ip:127.0.0.1 ,此时利用VI修改下配置 vi /etc/memcached.conf 文件打开后,修改下,把-l前面加入#号注释掉,重启服务器就 ...
- Windows server 2008下开启telnet功能
今天在windows server 2008 R2下使用telnet 来测试端口是否可以连接,结果发现如下错误:
- java static 变量,和方法从属于类
第36集 java static 变量,和方法从属于类 可以用类来直接调用static属性和方法 static方法不能调用非静态的属性和方法,反之可以 new产生的对象,不包括static 属性和方法
- 控件动态产生器(使用RegisterClasses提前进行注册)
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...
- /etc/passwd 结构
命令:cat /etc/passwd username:password:uid:gid:allname:homedir:shell 用户名:密码:用户ID:组ID:用户全名:主目录:登录shell ...