如何轉換為陣列?
(學習影片分享:程式設計影片)
我們在使用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; 就可以了。
如果要回傳FindAll陣列呢,要怎麼處理呢?
有兩種方法:
第一種是使用自訂的函數,如下
/** * 简化findall数据 * */ function simplifyData($data){ foreach($data as $key=>$val){ $newData[$key] = $val->attributes; } return $newData; }
然後使用函數直接轉換結果
第二種是使用很簡單的方法:
$products = ProTuan::model()->findAll($criteria); $products = json_decode(CJSON::encode($products),TRUE);
作用是就先將findAll結果先轉成JSON格式,然後再轉為數組
至於findALL轉為JOSN格式其實就是使用
CJSON::encode
相關推薦:yii框架
以上是yii如何將物件轉換為陣列或直接輸出為json格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!