0

私はまだ Yii を使い始めたばかりで、JSON を から返す方法を考えています$models = MyModel::model()->findAll();

たとえば、1:MANYMyModelの関係があるとします。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です。

どうすればこれを達成できますか?

4

1 に答える 1

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;
    }
于 2012-04-17T03:32:14.023 に答える