Use Yii findAll para devolver un modelo con todas las propiedades

Todavía soy nuevo para Yii y me pregunto cómo devolver JSON desde $models = MyModel::model()->findAll(); .

Digamos por ejemplo que MyModel tiene una relación para MyChildModels de una manera MyChildModels : MUCHAS.

Directamente del rest del ejemplo en el sitio Yii tengo:

 foreach ($models as $model) { $rows[] = $model->attributes; } $this->_sendResponse(200, CJSON::encode($rows), 'application/json'); 

Obtengo todos los atributos del modelo pero NO los atributos de relación unida.

Del mismo modo, puedo cambiar la línea $rows para que sea:

 $rows[] = $model->myChildModels; 

… y obtengo todos los atributos myChildModels para cada modelo, pero no atributos (como era de esperar).

Pero lo que quiero es el conjunto completo: los atributos del Model MÁS todos los myChildModels y sus atributos.

¿Cómo logro esto?

Hago lo mismo con Yii. Así es como lo hago.

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

Normalmente, no envío un encabezado JSON, pero puede hacerlo si lo desea.

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

para modelos relacionados prueba esto.

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