Carlos,
Boa noite,
Vou tentar explicar de forma breve. Caso você precise de algum detalhe, me fale. Basicamente, você vai ter um grid junto com o formulário principal, para exibir os itens filhos. O detalhe é que este grid vai usar CArraydataprovider ao invés do CActiveDataprovider.
<?php
if ($model->validate()) {
$arrayData = Yii::app()->session['ModelArrayData'];
$model->primaryKey = empty($arrayData) ? rand(1, 99999) : max(array_keys($arrayData)) + 1;
$attributes = $model->attributes;
$arrayData[$model->primaryKey] = $model->attributes;
Yii::app()->session['ModelArrayData'] = $arrayData;
}
?>
Pra atualizar o grid, você utiliza a função "$.fn.yiiGridView.update('id-grid');" no 'success' do exemplo do link acima.
Quando for salvar o model pai, você faz um loop com a variável de sessão e monta os models filhos:
<?php
$transaction = Yii::app()->db->beginTransaction();
$validado = $model->save();
$dependentesSalvar = Yii::app()->session['ModelArrayData'];
foreach ((array) $dependentesSalvar as $dependente) {
$filho = new $ModelFilho();
$filho->attributes = $dependente;
$filho->id_pai = $model->id_pai;
$validado = $validado && $filho->save();
}
$validado ? $transaction->commit() : $transaction->rollback();
?>
Bem, este código foi só pra você ter uma base. Veja se lhe ajuda de alguma forma. Qualquer dúvida, estou à disposição.