2012-04-17 65 views
0

我對Yii仍然陌生,想知道如何從$models = MyModel::model()->findAll();返回JSON。使用Yii findAll返回一個模型W /所有屬性

舉例說,MyModel與ONE:MANY時尚關係爲MyChildModels。從休息例子

直上Yii的網站,我有:

foreach ($models as $model) { 
    $rows[] = $model->attributes; 
} 

$this->_sendResponse(200, CJSON::encode($rows), 'application/json'); 

我得到的所有模型的屬性,而不是加入了關係屬性。

同樣,我可以改變$rows線爲:

$rows[] = $model->myChildModels; 

...和我得到的所有每個模型的myChildModels屬性,但不是任何屬性(如我所期望的)。

但我想要的是全套 - Model屬性PLUS的所有myChildModels及其屬性。

我該如何做到這一點?

回答

5

我對Yii做同樣的事情。這是我如何做到的。

$models = MyModel::model()->findAll(); 
    if ($models){ 
    echo CJSON::encode($models); 
    } 

我通常不會發送JSON標頭,但如果您想要,您可以。

header('Content-type: application/json'); 

對於相關型號試試這個。

foreach ($models as $model) { 
     $rows[] = $model->attributes;    
     $rows[] = $model->related->attributes; 
    } 
+0

我試過了,但是我只拿到了模型屬性,而不是關係屬性,以及... – 2012-04-17 03:34:25

+0

我說我的想法 – jarchuleta 2012-04-17 03:36:22

+0

的,其結果是,對象將是這樣:'{[Object1 ],[Related1],[Object2],[Related2],..,[ObjectN],[RelatedN]}'這是不可取的。我需要的是:{[Object1 [attributes],[related1attributes] ...}或[{[Object1所有與屬性相關的],[Object2與屬性相關的]} if這是有道理的 – 2012-04-17 03:40:44

相關問題