使用 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

如果返回的是多条结果,返回的是一个对象数组的时候有下面 2 种方法:

//第一种直接将结果循环输出
 foreach ($myReceivedCode as $model) {
                        $result[] = $model->attributes;
                }

//第二种用array_map
                $result= array_map(function($record) {
                                return $record->attributes;
                        }, Post::model()->->findAllByAttributes($attributes));

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: Yii Active Record 查询结果转化成数组

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可