我还是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
及其属性。
我如何做到这一点?
答案 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;
}