YII如何将对象转化为数组或直接输出为json格式

 4335

YII如何将对象转化为数组或直接输出为json格式


如何转化为数组?

我们在使用Yii 的Active Record 来获取查询结果的时候,返回的结果集是一个对象类型。如果我们希望能够更加方便地处理数据,可以将它转成数组返回,比如下面的方法:

  1. // 查找满足指定条件的结果中的第一行
  2. $post=Post::model()->find($condition,$params);
  3. // 查找具有指定主键值的那一行
  4. $post=Post::model()->findByPk($postID,$condition,$params);
  5. // 查找具有指定属性值的行
  6. $post=Post::model()->findByAttributes($attributes,$condition,$params);

返回一条结果的时候直接用 $post->attributes; 就可以了。

如果要返回FindAll数组呢,要怎么处理呢?


有两种方法:

第一种是使用自定义的函数,如下

  1. /**
  2.  * 简化findall数据
  3.  **/
  4. function simplifyData($data){
  5.     foreach($data as $key=>$val){
  6.         $newData[$key] = $val->attributes;
  7.     }
  8.     return $newData;
  9. }

然后使用函数直接转换结果


第二种是使用很简单的方法:

  1. $products = ProTuan::model()->findAll($criteria);
  2. $products = json_decode(CJSON::encode($products),TRUE);

作用是就先将findAll结果先转成JSON格式,然后再转为数组

至于findALL转为JOSN格式其实就是使用

  1. CJSON::encode



本文网址:https://www.zztuku.com/detail-8609.html
站长图库 - YII如何将对象转化为数组或直接输出为json格式
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐