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

时间:2012-04-17 03:17:03

标签: php activerecord yii

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

比如说MyModel以一种:多种方式与MyChildModels有关系。

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

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

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

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

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

$rows[] = $model->myChildModels;

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

但我想要的是完整套件 - Model属性加上所有myChildModels及其属性。

我如何做到这一点?

1 个答案:

答案 0 :(得分: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;
    }