使用Yii findAll返回具有所有属性的模型

tac*_*cos 0 php activerecord yii

我还是Yii的新手,想知道如何从中返回JSON $models = MyModel::model()->findAll();.

比如说MyModel有一种关系MyChildModels:一种:多种方式.

直接来自Yii网站上的Rest示例我有:

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

$this->_sendResponse(200, CJSON::encode($rows), 'application/json');
Run Code Online (Sandbox Code Playgroud)

我得到了所有模型的属性,但没有得到连接的关系属性.

同样,我可以将$rows行更改为:

$rows[] = $model->myChildModels;
Run Code Online (Sandbox Code Playgroud)

...我获得myChildModels了每个模型的所有属性,但没有任何属性(正如我所期望的那样).

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

我该如何做到这一点?

jar*_*eta 5

我和Yii做同样的事情.我就是这样做的.

$models = MyModel::model()->findAll();
    if ($models){
    echo CJSON::encode($models);
    }
Run Code Online (Sandbox Code Playgroud)

我通常不会发送JSON标头,但如果你愿意,你也可以.

header('Content-type: application/json');
Run Code Online (Sandbox Code Playgroud)

对于相关型号试试这个.

foreach ($models as $model) {
        $rows[] = $model->attributes;               
        $rows[] = $model->related->attributes;
    }
Run Code Online (Sandbox Code Playgroud)